Methods and systems for interactive rendering of object based audio

ABSTRACT

Methods for generating an object based audio program which is renderable in a personalizable manner, e.g., to provide an immersive, perception of audio content of the program. Other embodiments include steps of delivering (e.g., broadcasting), decoding, and/or rendering such a program. Rendering of audio objects indicated by the program may provide an immersive experience. The audio content of the program may be indicative of multiple object channels (e.g., object channels indicative of user-selectable and user-configurable objects, and typically also a default set of objects which will be rendered in the absence of a selection by a user) and a bed of speaker channels. Another aspect is an audio processing unit (e.g., encoder or decoder) configured to perform, or which includes a buffer memory which stores at least one frame (or other segment) of an object based audio program (or bitstream thereof) generated in accordance with, any embodiment of the method.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. patent application Ser. No. 17/392,146, filed on Aug. 2, 2021, which is a continuation application of U.S. patent application Ser. No. 16/718,053, filed on Dec. 17, 2019, now U.S. Pat. No. 11,081,118 which is a divisional application of U.S. patent application Ser. No. 15/989,073, filed on May 24, 2018, now U.S. Pat. No. 10,515,644, which is a divisional application of U.S. patent application Ser. No. 14/781,882, filed on Oct. 1, 2015, now U.S. Pat. No. 9,997,164, which the U.S. National Stage of International Application No. PCT/US2014/031246, filed Mar. 19, 2014, which claims the benefit of priority to U.S. Provisional Patent Application No. 61/807,922, filed on Apr. 3, 2013 and U.S. Provisional Patent Application No. 61/832,397, filed on Jun. 7, 2013, incorporated herein by reference.

TECHNICAL FIELD OF THE INVENTION

The invention pertains to audio signal processing, and more particularly, to encoding, decoding, and interactive rendering of audio data bitstreams which include audio content (typically indicative of speaker channels and at least one selectable audio object channel), and metadata which supports interactive rendering of the audio content. Some embodiments of the invention generate, decode, and/or render audio data in one of the formats known as Dolby Digital (AC-3), Dolby Digital Plus (Enhanced AC-3 or E-AC-3), or Dolby E.

BACKGROUND OF THE INVENTION

Dolby, Dolby Digital, Dolby Digital Plus, and Dolby E are trademarks of Dolby Laboratories Licensing Corporation. Dolby Laboratories provides proprietary implementations of AC-3 and E-AC-3 known as Dolby Digital and Dolby Digital Plus, respectively.

A typical stream of audio data includes both audio content (e.g., one or more channels of audio content) and metadata indicative of at least one characteristic of the audio content. For example, in an AC-3 bitstream there are several audio metadata parameters that are specifically intended for use in changing the sound of the program delivered to a listening environment. One of the metadata parameters is the DIALNORM parameter, which is intended to indicate the mean level of dialog occurring in an audio program, and is used to determine audio playback signal level.

Although the present invention is not limited to use with an AC-3 bitstream, an E-AC-3 bitstream, or a Dolby E bitstream, for convenience it will be described in embodiments in which it generates, decodes, or otherwise processes such a bitstream which includes loudness processing state metadata.

An AC-3 encoded bitstream comprises metadata and one to six channels of audio content. The audio content is audio data that has been compressed using perceptual audio coding. The metadata includes several audio metadata parameters that are intended for use in changing the sound of a program delivered to a listening environment.

Details of AC-3 (also known as Dolby Digital) coding are well known and are set forth in many published references including in ATSC Standard A52/A: Digital Audio Compression Standard (AC-3), Revision A, Advanced Television Systems Committee, 20 Aug. 2001.

Details of Dolby Digital Plus (E-AC-3) coding are set forth in “Introduction to Dolby Digital Plus, an Enhancement to the Dolby Digital Coding System,” AES Convention Paper 6196, 117^(th) AES Convention, Oct. 28, 2004.

Details of Dolby E coding are set forth in “Efficient Bit Allocation, Quantization, and Coding in an Audio Distribution System”, AES Preprint 5068, 107th AES Conference, August 1999 and “Professional Audio Coder Optimized for Use with Video”, AES Preprint 5033, 107th AES Conference August 1999.

Each frame of an AC-3 encoded audio bitstream contains audio content and metadata for 1536 samples of digital audio. For a sampling rate of 48 kHz, this represents 32 milliseconds of digital audio or a rate of 31.25 frames per second of audio.

Each frame of an E-AC-3 encoded audio bitstream contains audio content and metadata for 256, 512, 768 or 1536 samples of digital audio, depending on whether the frame contains one, two, three or six blocks of audio data respectively. For a sampling rate of 48 kHz, this represents 5.333, 10.667, 16 or 32 milliseconds of digital audio respectively or a rate of 189.9, 93.75, 62.5 or 31.25 frames per second of audio respectively.

As indicated in FIG. 1 , each AC-3 frame is divided into sections (segments), including: a Synchronization Information (SI) section which contains (as shown in FIG. 2 ) a synchronization word (SW) and the first of two error correction words (CRC1); a Bitstream Information (BSI) section which contains most of the metadata; six Audio Blocks (AB0 to AB5) which contain data compressed audio content (and can also include metadata); waste bits (W) which contain any unused bits left over after the audio content is compressed; an Auxiliary (AUX) information section which may contain more metadata; and the second of two error correction words (CRC2).

As indicated in FIG. 4 , each E-AC-3 frame is divided into sections (segments), including: a Synchronization Information (SI) section which contains (as shown in FIG. 2 ) a synchronization word (SW); a Bitstream Information (BSI) section which contains most of the metadata; between one and six Audio Blocks (AB0 to AB5) which contain data compressed audio content (and can also include metadata); waste bits (W) which contain any unused bits left over after the audio content is compressed; an Auxiliary (AUX) information section which may contain more metadata; and an error correction word (CRC).

In an AC-3 (or E-AC-3) bitstream there are several audio metadata parameters that are specifically intended for use in changing the sound of the program delivered to a listening environment. One of the metadata parameters is the DIALNORM parameter, which is included in the BSI segment.

As shown in FIG. 3 , the BSI segment of an AC-3 frame (or an E-AC-3 frame) includes a five-bit parameter (“DIALNORM”) indicating the DIALNORM value for the program. A five-bit parameter (“DIALNORM2”) indicating the DIALNORM value for a second audio program carried in the same AC-3 frame is included if the audio coding mode (“acmod”) of the AC-3 frame is “0”, indicating that a dual-mono or “1+1” channel configuration is in use.

The BSI segment also includes a flag (“addbsie”) indicating the presence (or absence) of additional bit stream information following the “addbsie” bit, a parameter (“addbsil”) indicating the length of any additional bit stream information following the “addbsil” value, and up to 64 bits of additional bit stream information (“addbsi”) following the “addbsil” value.

The BSI segment includes other metadata values not specifically shown in FIG. 3 .

It has been proposed to include metadata of other types in audio bitstreams. For example, methods and systems for generating, decoding, and processing audio bitstreams including metadata indicative of the processing state (e.g., the loudness processing state) and characteristics (e.g., loudness) of audio content are described in PCT International Application Publication Number WO 2012/075246 A2, having international filing date Dec. 1, 2011, and assigned to the assignee of the present application. This reference also describes adaptive processing of the audio content of the bitstreams using the metadata, and verification of validity of the loudness processing state and loudness of audio content of the bitstreams using the metadata.

Methods for generating and rendering object based audio programs are also known. During generation of such programs, it is typically assumed that the loudspeakers to be employed for rendering are located in arbitrary locations in the playback environment; not necessarily in a (nominally) horizontal plane or in any other predetermined arrangements known at the time of program generation. Typically, metadata included in the program indicates rendering parameters for rendering at least one object of the program at an apparent spatial location or along a trajectory (in a three dimensional volume), e.g., using a three-dimensional array of speakers. For example, an object channel of the program may have corresponding metadata indicating a three-dimensional trajectory of apparent spatial positions at which the object (indicated by the object channel) is to be rendered. The trajectory may include a sequence of “floor” locations (in the plane of a subset of speakers which are assumed to be located on the floor, or in another horizontal plane, of the playback environment), and a sequence of “above-floor” locations (each determined by driving a subset of the speakers which are assumed to be located in at least one other horizontal plane of the playback environment). Examples of rendering of object based audio programs are described, for example, in PCT International Application No. PCT/US2001/028783, published under International Publication No. WO 2011/119401 A2 on Sep. 29, 2011, and assigned to the assignee of the present application.

BRIEF DESCRIPTION OF THE INVENTION

In accordance with some embodiments of the invention, an object based audio program (generated in accordance with the invention) is rendered so as to provide an immersive, personalizable perception of the program's audio content. Typically, the content is indicative of the atmosphere at (i.e., sound occurring in or at), and/or commentary on a spectator event (e.g., a soccer or rugby game, a car or motorcycle race, or another sporting event). In some embodiments, the content is not indicative of the atmosphere at or commentary on a spectator event (e.g., in some embodiments, the content is indicative of a scripted or cinematic program having multiple, selectable versions of dialog and/or other audio content). In some embodiments, the audio content of the program is indicative of multiple audio object channels (e.g., indicative of user-selectable objects or object sets, and typically also a default set of objects to be rendered in the absence of object selection by the user) and at least one set (sometimes referred to herein as a “bed”) of speaker channels. The bed of speaker channels may be a conventional mix (e.g., a 5.1 channel mix) of speaker channels of a type that might be included in a conventional broadcast program which does not include an object channel.

In some embodiments, object related metadata indicated by (i.e., delivered as part of) an object based audio program provides mixing interactivity (e.g., a large degree of mixing interactivity) on the playback side, including by allowing an end user to select a mix of audio content of the program for rendering, instead of merely allowing playback of a pre-mixed sound field. For example, a user may select among rendering options provided by metadata of a typical embodiment of the inventive program to select a subset of available object channels for rendering, and optionally also the playback level of at least one audio object (sound source) indicated by the object channel(s) to be rendered. The spatial location at which each selected sound source is rendered may be predetermined by metadata included in the program, but in some embodiments can be selected by the user (e.g., subject to predetermined rules or constraints). In some embodiments, metadata included in the program allows user selection from among a menu of rendering options (e.g., a small number of rendering options, for example, a “home team crowd noise” object, a “home team crowd noise” and a “home team commentary” object set, an “away team crowd noise” object, and an “away team crowd noise” and “away team commentary” object set). The menu may be presented to the user by a user interface of a controller. The controller is typically coupled (e.g., by a wireless link) to a set top device (or other device, e.g., a TV, AVR, tablet, or phone) which is configured to decode and render (at least partially) the object based program. In some other embodiments, metadata included in the program otherwise allows user selection from among a set of options as to which object(s) indicated by the object channels should be rendered, and as to how the object(s) to be rendered should be configured.

In a class of embodiments, the invention is a method of generating an object based audio program (e.g., including by encoding audio content to generate the program) such that the program is renderable in a personalizable manner to provide an immersive, perception of audio content of the program. Other embodiments include steps of delivering (e.g., broadcasting), decoding, and/or rendering such a program. Rendering of audio objects indicated by (included in) the program can provide an immersive experience (e.g., when the playback system includes a three-dimensional array of speakers, or even when the playback system includes a nominally two-dimensional array of speakers).

Typically, the audio content of the program is indicative of multiple audio objects (e.g., user-selectable objects, and typically also a default set of objects which will be rendered in the absence of a selection by the user) and a set (“bed”) of speaker channels. In some embodiments, a consumer uses a controller (which implements a user interface) to select object channel content of the program (and corresponding rendering parameters), but the controller does not provide an option for the user to select speaker channel content of the program (i.e., individual speaker channels of the bed).

In some embodiments, the object based audio program is an encoded (e.g., compressed) audio bitstream (sometimes referred to herein as a “main mix”) indicative of at least some (i.e., at least a part) of the program's audio content (e.g., a bed of speaker channels and at least some of the program's object channels) and object related metadata, and optionally also at least one additional bitstream or file (sometimes referred to herein as a “side mix”) indicative of some of the program's audio content (e.g., at least some of the object channels) and/or object related metadata.

In some embodiments, object related metadata of the program includes durable metadata (e.g., durable metadata and non-durable metadata). For example, the object related metadata may include non-durable metadata (e.g., a default level and/or rendering position or trajectory, for a user-selectable object) which can be changed at at least one point in the broadcast chain (from the content creation facility to the consumer's user interface) and durable metadata which is not intended to be changeable (or cannot be changed) after initial generation of the program (typically, in a content creation facility). Examples of durable metadata include an object ID for each user-selectable object or other object or set of objects of the program, and synchronization words (e.g., time codes) indicative of timing of each user-selectable object, or other object, relative to audio content of the bed of speaker channels or other elements of the program. Durable metadata is typically preserved throughout the entire broadcast chain from content creation facility to user interface, throughout the entire duration of a broadcast of the program or even also during re-broadcasts of the program. In some embodiments, the audio content (and associated metadata) of at least one user-selectable object is sent in a main mix of the object based audio program, and at least some durable metadata (e.g., time codes) and optionally also audio content (and associated metadata) of at least one other object is sent in a side mix of the program.

Durable metadata in some embodiments of the inventive object based audio program is employed to preserve (e.g., even after broadcast of the program) a user selected mix of object content and bed (speaker channel) content. For example, this may provide the selected mix as a default mix each time the user a program of a specific type (e.g., any soccer game) or each time the user watches any program (of any type), until the user changes his/her selection. For example, during broadcast of a first program, the user may select a mix including an object having a durable ID (e.g., an object identified as a “home team crowd noise” object), and then each time the user watches (and listens to) another program (which includes an object having the same durable ID), the playback system will automatically render the program with the same mix, until the user changes the mix selection. Durable, object related metadata in some embodiments of the inventive object based audio program may cause rendering of some objects to be mandatory (e.g., despite a user's desire to defeat such rendering) during an entire program.

In some embodiments, object related metadata provides a default mix of object content and bed (speaker channel) content, with default rendering parameters (e.g., default spatial locations of rendered objects).

In some embodiments, object related metadata provides a set of selectable “preset” mixes of objects and “bed” speaker channel content, each preset mix having a predetermined set of rendering parameters (e.g., spatial locations of rendered objects). These may be presented by a user interface of the playback system as a limited menu or palette of available mixes. Each preset mix (and/or each selectable object) may have a durable ID (e.g., name, label or logo), and an indication of such ID is typically displayable by a user interface of the playback system (e.g., on the screen of an iPad or other controller). For example, there may be a selectable “home team” mix with an ID (e.g., a team logo) that is durable, regardless of changes (e.g., made by the broadcaster) to details of the audio content or nondurable metadata of each object of the preset mix.

In some embodiments, object related metadata of a program (or a preconfiguration of the playback or rendering system, not indicated by metadata delivered with the program) provides constraints or conditions on selectable mixes of objects and bed (speaker channel) content. For example, if digital rights management (DRM) is employed, a DRM hierarchy may be implemented to allow customers to have “tiered” access to a set of audio objects included in an object based audio program. If a customer pays more money (e.g., to the broadcaster), the customer may be authorized to decode and select (and hear) more audio objects of the program. For another example, object related metadata may provide constraints on user selection of objects (e.g., if both a “home team crowd noise” object and a “home team announcer” object are selected, the metadata ensures that these two objects are rendered with predetermined relative spatial locations). The constraints may be determined (at least in part) by data (e.g., user-entered data) regarding the playback system. For example, if the playback system is a stereo system (including only two speakers), the system's object processing subsystem may be configured to prevent user selection of mixes (identified by object related metadata) that cannot be rendered with adequate spatial resolution by only two speakers. For another example, some delivered objects may be removed from the category of selectable objects for legal (e.g., DRM) reasons or other reasons (e.g. based on bandwidth of the delivery channel) indicated by object related metadata (and/or other data entered to the playback system). The user may pay the content creator or broadcaster for more bandwidth, and as a result may be allowed to select from a larger menu of selectable objects and/or bed/object mixes.

In some embodiments, the invention implements rule based object channel selection, in which at least one predetermined rule determines which object channel(s) of an object based audio program are rendered (e.g., with a bed of speaker channels). Typically, the user specifies at least one rule for object channel selection (e.g., by selecting from a menu of available rules presented by a user interface of a playback system controller), and the playback system applies each such rule to determine which object channel(s) of an object based audio program should be included in the mix of channels to be rendered. The playback system may determine from object related metadata in the program which object channel(s) of the program satisfy the predetermined rule(s).

In some embodiments, the inventive object based audio program includes a set of bitstreams (multiple bitstreams, which may be referred to as “substreams”) which are generated and transmitted in parallel. Typically, multiple decoders are employed to decode them (e.g., the program includes multiple E-AC-3 substreams and the playback system employs multiple E-AC-3 decoders to decode the substreams). Typically, each substream includes a different subset of a full set of object channels and corresponding object related metadata, and at least one substream includes a bed of speaker channels. Each substream preferably includes synchronization words (e.g., time codes) to allow the substreams to be synchronized or time aligned with each other. For example, in each substream, each container which includes object channel content and object related metadata includes a unique ID or time stamp.

For another example, a set of N of the inventive Dolby E bitstreams is generated and transmitted in parallel. Each such Dolby E bitstream comprises a sequence of bursts. Each burst may carry speaker channel audio content (a “bed” of speaker channels) and a subset of a full object channel set (which may be a large set) of the inventive object channels and object related metadata (i.e., each burst may indicate some object channels of the full object channel set and corresponding object related metadata). Each bitstream in the set includes synchronization words (e.g., time codes) to allow the bitstreams in the set to be synchronized or time aligned with each other. For example, in each bitstream, each container including object channel content and object related metadata could include a unique ID or time stamp to allow the bitstreams in the set to be synchronized or time aligned with each other.

Some embodiments of the invention (e.g., some embodiments of the inventive playback system) implement distributed rendering. For example, selected object channels (and corresponding object related metadata) of a program are passed on (with a decoded bed of speaker channels) from a set top device (STB) to a downstream device (e.g., an AVR or soundbar) configured to render a mix of the object channels and the bed of speaker channels. The STB may partially render the audio and the downstream device may complete the rendering (e.g., by generating speaker feeds for driving a specific top tier of speakers (e.g., ceiling speakers) to place an audio object in a specific apparent source position, where the STB's output merely indicates that the object can be rendered in some unspecified way in some unspecified top tier of speakers). For example, the STB may not have knowledge of the specific organization of the speakers of the playback system, but the downstream device (e.g., AVR or soundbar) may have such knowledge.

In some embodiments, the object based audio program is or includes at least one AC-3 (or E-AC-3) bitstream, and each container of the program which includes object channel content (and/or object related metadata) is included in an auxdata field (e.g., the AUX segment shown in FIG. 1 or FIG. 4 ) at the end of a frame of the bitstream, or in a “skip fields” segment of the bitstream. In some such embodiments, each frame of the AC-3 or E-AC-3 bitstream includes one or two metadata containers. One container can be included in the Aux field of the frame, and another container can be included in the addbsi field of the frame. Each container has a core header and includes (or is associated with) one or more payloads. One such payload (of or associated with a container included in the Aux field) may be a set of audio samples of each of one or more of the inventive object channels (related to the bed of speaker channels which is also indicated by the program) and the object related metadata associated with each object channel. The core header of each container typically includes at least one ID value indicating the type of payload(s) included in or associated with the container; substream association indications (indicating which substreams the core header is associated with); and protection bits. Typically, each payload has its own header (or “payload identifier”). Object level metadata may be carried in each substream which is an object channel.

In other embodiments, the object based audio program is or includes a bitstream which is not an AC-3 bitstream or an E-AC-3 bitstream. In some embodiments, the object based audio program is or includes at least one Dolby E bitstream, and the object channel content and object related metadata of the program (e.g., each container of the program which includes object channel content and/or object related metadata) is included in bit locations of the Dolby E bitstream that conventionally do not carry useful information. Each burst of a Dolby E bitstream occupies a time period equivalent to that of a corresponding video frame. The object channels (and object related metadata) may be included in the guard bands between Dolby E bursts and/or in the unused bit locations within each of data structures (each having the format of an AES3 frame) within each Dolby E burst. For example, each guard band consists of a sequence of segments (e.g., 100 segments), each of the first X segments (e.g., X=20) of each guard band includes the object channels and object related metadata, and each of the remaining segments of said each guard band may include a guard band symbol. In some embodiments, the object channels and object related metadata of Dolby E bitstreams are included in metadata containers. Each container has a core header and includes (or is associated with) one or more payloads. One such payload (of or associated with a container included in the Aux field) may be a set of audio samples of each of one or more of the inventive object channels (related to the bed of speaker channels which is also indicated by the program) and the object related metadata associated with each object channel. The core header of each container typically includes at least one ID value indicating the type of payload(s) included in or associated with the container; substream association indications (indicating which substreams the core header is associated with); and protection bits. Typically, each payload has its own header (or “payload identifier”). Object level metadata may be carried in each substream which is an object channel.

In some embodiments, a broadcast facility (e.g., an encoding system in such a facility) generates multiple audio representations (object based audio programs) based on captured sound (e.g., a 5.1 flattened mix, an international mix, a domestic mix). For example, the bed of speaker channels, and/or the menu of selectable objects (or selectable or nonselectable rendering parameters for rendering and mixing objects) of the programs may differ from program to program.

In some embodiments, the object based audio program is decodable and the speaker channel content thereof is renderable by a legacy decoder and legacy rendering system (which is not configured to parse the inventive object channels and object related metadata). The same program may be rendered in accordance with some embodiments of the invention by a set top device (or other decoding and rendering system, e.g., a TV, AVR, tablet, or phone) which is configured (in accordance with an embodiment of the invention) to parse the inventive object channels and object related metadata and render a mix of speaker channel and object channel content indicated by the program.

An object based audio program generated (or transmitted, stored, buffered, decoded, rendered, or otherwise processed) in accordance with some embodiments of the invention includes at least one bed of speaker channels, at least one object channel, and metadata indicative of a layered graph (sometimes referred to as a layered “mix graph”) indicative of selectable mixes (e.g., all selectable mixes) of the speaker channels and object channel(s). For example, the mix graph is indicative of each rule applicable to selection of subsets of the speaker and object channels. Typically, an encoded audio bitstream is indicative of at least some (i.e., at least a part) of the program's audio content (e.g., a bed of speaker channels and at least some of the program's object channels) and object related metadata (including the metadata indicative of the mix graph) and optionally also at least one additional encoded audio bitstream or file is indicative of some of the program's audio content and/or object related metadata.

The layered mix graph is indicative of nodes (each of which may be indicative of a selectable channel or set of channels, or a category of selectable channels or set of channels) and connections between the nodes (e.g., control interfaces to the nodes and/or rules for selecting channels), and includes essential data (a “base” layer) and optional (i.e., optionally omitted) data (at least one “extension” layer). Typically, the layered mix graph is included in one of the encoded audio bitstream(s) indicative of the program, and can be assessed by graph traversal (e.g., implemented by a playback system) to determine a default mix of channels and options for modifying the default mix.

Where the mix graph is representable as a tree graph, the base layer can be a branch (or two or more branches) of the tree graph, and each extension layer can be another branch (or another set of two or more branches) of the tree graph. For example, one branch of the tree graph (indicated by the base layer) may be indicative of selectable channels and sets of channels that are available to all end users, and another branch of the tree graph (indicated by an extension layer) may be indicative of additional selectable channels and/or sets of channels that are available only to some end users (e.g., such an extension layer may be provided only to end users authorized to use it).

Typically the base layer contains (is indicative of) the graph structure and control interfaces to the nodes of the graph (e.g., panning, and gain control interfaces). The base layer is necessary for mapping any user interaction to the decoding/rendering process.

Each extension layer contains (is indicative of) an extension to the base layer. The extensions are not immediately necessary for mapping user interaction to the decoding process and hence can be transmitted at a slower rate and/or delayed, or omitted.

An object based audio program generated (or transmitted, stored, buffered, decoded, rendered, or otherwise processed) in accordance some embodiments of the invention includes at least one bed of speaker channels, at least one object channel, and metadata indicative of a mix graph (which may or may not be a layered mix graph) indicative of selectable mixes (e.g., all selectable mixes) of the speaker channels and the object channel(s). An encoded audio bitstream (e.g., a Dolby E or E-AC-3 bitstream) is indicative of at least a portion of the program, and metadata indicative of the mix graph (and typically also the selectable object and/or speaker channels) is included in every frame of the bitstream (or in each frame of a subset of the frames of the bitstream). For example, each frame may include at least one metadata segment and at least one audio data segment, and the mix graph may be included in at least one metadata segment of each frame. Each metadata segment (which may be referred to as a “container”) may have a format which includes a metadata segment header (and optionally also other elements), and one or more metadata payloads following the metadata segment header. Each metadata payload is itself identified by a payload header. The mix graph, if present in a metadata segment, is included in one of the metadata payloads of the metadata segment.

An object based audio program generated (or transmitted, stored, buffered, decoded, rendered, or otherwise processed) in accordance with some embodiments of the invention includes at least two beds of speaker channels, at least one object channel, and metadata indicative of a mix graph (which may or may not be a layered mix graph). The mix graph is indicative of selectable mixes (e.g., all selectable mixes) of the speaker channels and the object channel(s), and includes at least one “bed mix” node. Each “bed mix” node defines a predetermined mix of speaker channel beds, and thus indicates or implements a predetermined set of mixing rules (optionally with user-selectable parameters) for mixing speaker channels of two or more speaker beds of the program.

In another class of embodiments, an object based audio program generated (or transmitted, stored, buffered, decoded, rendered, or otherwise processed) in accordance with the invention includes substreams, and the substreams are indicative of at least one bed of speaker channels, at least one object channel, and object related metadata. The object related metadata includes “substream” metadata (indicative of substream structure of the program and/or the manner in which the substreams should be decoded) and typically also a mix graph indicative of selectable mixes (e.g., all selectable mixes) of the speaker channels and the object channel(s). The substream metadata may be indicative of which substreams of the program should be decoded independently of other substreams of the program, and which substreams of the program should be decoded in association with at least one other substream of the program.

In an example embodiment, an object based audio program includes at least one bed of speaker channels, at least one object channel, and metadata. The metadata includes “substream” metadata (indicative of substream structure of audio content of the program and/or the manner in which substreams of audio content of the program should be decoded) and typically also a mix graph indicative of selectable mixes of the speaker channels and the object channel(s). The audio program associated with a soccer game. An encoded audio bitstream (e.g., an E-AC-3 bitstream) is indicative of the program's audio content and metadata. The audio content of the program (and thus of the bitstream) includes at least two independent substreams. One independent substream is indicative of a 5.1 speaker channel bed indicative of neutral crowd noise at the soccer game. Another independent substream is indicative of a 2.0 channel “Team A” bed indicative of sound from the portion of the game crowd biased toward one team (“Team A”), a 2.0 channel “Team B” bed indicative of sound from the portion of the game crowd biased toward the other team (“Team B”), and a monophonic object channel indicative of commentary on the game. Substream metadata of the bitstream indicates that during decoding, coupling should be “off” between each pair of the independent substreams (so that each independent substream is decoded independently of the other independent substreams), and substream metadata of the bitstream indicates the program channels within each substream for which coupling should be “on” (so that these channels are not decoded independently of each other) or “off” (so that these channels are decoded independently of each other). For example, the substream metadata indicates that coupling should be “on” internal to each of the two stereo speaker channel beds (the 2.0 channel “Team A” bed and the 2.0 channel “Team B” bed) of the second substream but disabled across the speaker channel beds of the second substream and between the monophonic object channel and each of the speaker channel beds of the second substream (to cause the monophonic object channel and the speaker channel beds to be decoded independently of each other). Similarly, the substream metadata indicates that coupling should be “on” internal to the 5.1 speaker channel bed of the first substream I0.

Another aspect of the invention is an audio processing unit (APU) configured to perform any embodiment of the inventive method. In another class of embodiments, the invention is an APU including a buffer memory (buffer) which stores (e.g., in a non-transitory manner) at least one frame or other segment (including audio content of a bed of speaker channels and of object channels, and object related metadata) of an object based audio program which has been generated by any embodiment of the inventive method. Examples of APUs include, but are not limited to encoders (e.g., transcoders), decoders, codecs, pre-processing systems (pre-processors), post-processing systems (post-processors), audio bitstream processing systems, and combinations of such elements.

Aspects of the invention include a system or device configured (e.g., programmed) to perform any embodiment of the inventive method, and a computer readable medium (e.g., a disc) which stores code (e.g., in a non-transitory manner) for implementing any embodiment of the inventive method or steps thereof. For example, the inventive system can be or include a programmable general purpose processor, digital signal processor, or microprocessor, programmed with software or firmware and/or otherwise configured to perform any of a variety of operations on data, including an embodiment of the inventive method or steps thereof. Such a general purpose processor may be or include a computer system including an input device, a memory, and processing circuitry programmed (and/or otherwise configured) to perform an embodiment of the inventive method (or steps thereof) in response to data asserted thereto.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of an AC-3 frame, including the segments into which it is divided.

FIG. 2 is a diagram of the Synchronization Information (SI) segment of an AC-3 frame, including segments into which it is divided.

FIG. 3 is a diagram of the Bitstream Information (BSI) segment of an AC-3 frame, including segments into which it is divided.

FIG. 4 is a diagram of an E-AC-3 frame, including segments into which it is divided.

FIG. 5 is a block diagram of an embodiment of a system which may be configured to perform an embodiment of the inventive method.

FIG. 6 is a block diagram of a playback system configured in accordance with an embodiment of the invention.

FIG. 7 is a block diagram of a playback system configured in accordance with another embodiment of the invention.

FIG. 8 is a block diagram of a broadcast system configured to generate an object based audio program (and a corresponding video program) in accordance with an embodiment of the invention.

FIG. 9 is a diagram of relationships between object channels of an embodiment of the inventive program, indicating which subsets of the object channels are selectable by a user.

FIG. 10 is a block diagram of a system which implements an embodiment of the invention.

FIG. 11 is a diagram of content of an object based audio program generated in accordance with an embodiment of the invention.

NOTATION AND NOMENCLATURE

Throughout this disclosure, including in the claims, the expression performing an operation “on” a signal or data (e.g., filtering, scaling, transforming, or applying gain to, the signal or data) is used in a broad sense to denote performing the operation directly on the signal or data, or on a processed version of the signal or data (e.g., on a version of the signal that has undergone preliminary filtering or pre-processing prior to performance of the operation thereon).

Throughout this disclosure including in the claims, the expression “system” is used in a broad sense to denote a device, system, or subsystem. For example, a subsystem that implements a decoder may be referred to as a decoder system, and a system including such a subsystem (e.g., a system that generates X output signals in response to multiple inputs, in which the subsystem generates M of the inputs and the other X−M inputs are received from an external source) may also be referred to as a decoder system.

Throughout this disclosure including in the claims, the term “processor” is used in a broad sense to denote a system or device programmable or otherwise configurable (e.g., with software or firmware) to perform operations on data (e.g., audio, or video or other image data). Examples of processors include a field-programmable gate array (or other configurable integrated circuit or chip set), a digital signal processor programmed and/or otherwise configured to perform pipelined processing on audio or other sound data, a programmable general purpose processor or computer, and a programmable microprocessor chip or chip set.

Throughout this disclosure including in the claims, the expression “audio video receiver” (or “AVR”) denotes a receiver in a class of consumer electronics equipment used to control playback of audio and video content, for example in a home theater.

Throughout this disclosure including in the claims, the expression “soundbar” denotes a device which is a type of consumer electronics equipment (typically installed in a home theater system), and which includes at least one speaker (typically, at least two speakers) and a subsystem for rendering audio for playback by each included speaker (or for playback by each included speaker and at least one additional speaker external to the soundbar).

Throughout this disclosure including in the claims, the expressions “audio processor” and “audio processing unit” are used interchangeably, and in a broad sense, to denote a system configured to process audio data. Examples of audio processing units include, but are not limited to encoders (e.g., transcoders), decoders, codecs, pre-processing systems, post-processing systems, and bitstream processing systems (sometimes referred to as bitstream processing tools).

Throughout this disclosure including in the claims, the expression “metadata” (e.g., as in the expression “processing state metadata”) refers to separate and different data from corresponding audio data (audio content of a bitstream which also includes metadata). Metadata is associated with audio data, and indicates at least one feature or characteristic of the audio data (e.g., what type(s) of processing have already been performed, or should be performed, on the audio data, or the trajectory of an object indicated by the audio data). The association of the metadata with the audio data is time-synchronous. Thus, present (most recently received or updated) metadata may indicate that the corresponding audio data contemporaneously has an indicated feature and/or comprises the results of an indicated type of audio data processing.

Throughout this disclosure including in the claims, the term “couples” or “coupled” is used to mean either a direct or indirect connection. Thus, if a first device couples to a second device, that connection may be through a direct connection, or through an indirect connection via other devices and connections.

Throughout this disclosure including in the claims, the following expressions have the following definitions:

-   -   speaker and loudspeaker are used synonymously to denote any         sound-emitting transducer. This definition includes loudspeakers         implemented as multiple transducers (e.g., woofer and tweeter);     -   speaker feed: an audio signal to be applied directly to a         loudspeaker, or an audio signal that is to be applied to an         amplifier and loudspeaker in series;     -   channel (or “audio channel”): a monophonic audio signal. Such a         signal can typically be rendered in such a way as to be         equivalent to application of the signal directly to a         loudspeaker at a desired or nominal position. The desired         position can be static, as is typically the case with physical         loudspeakers, or dynamic;     -   audio program: a set of one or more audio channels (at least one         speaker channel and/or at least one object channel) and         optionally also associated metadata (e.g., metadata that         describes a desired spatial audio presentation);     -   speaker channel (or “speaker-feed channel”): an audio channel         that is associated with a named loudspeaker (at a desired or         nominal position), or with a named speaker zone within a defined         speaker configuration. A speaker channel is rendered in such a         way as to be equivalent to application of the audio signal         directly to the named loudspeaker (at the desired or nominal         position) or to a speaker in the named speaker zone;     -   object channel: an audio channel indicative of sound emitted by         an audio source (sometimes referred to as an audio “object”).         Typically, an object channel determines a parametric audio         source description (e.g., metadata indicative of the parametric         audio source description is included in or provided with the         object channel). The source description may determine sound         emitted by the source (as a function of time), the apparent         position (e.g., 3D spatial coordinates) of the source as a         function of time, and optionally at least one additional         parameter (e.g., apparent source size or width) characterizing         the source;     -   object based audio program: an audio program comprising a set of         one or more object channels (and optionally also comprising at         least one speaker channel) and optionally also associated         metadata (e.g., metadata indicative of a trajectory of an audio         object which emits sound indicated by an object channel, or         metadata otherwise indicative of a desired spatial audio         presentation of sound indicated by an object channel, or         metadata indicative of an identification of at least one audio         object which is a source of sound indicated by an object         channel); and     -   render: the process of converting an audio program into one or         more speaker feeds, or the process of converting an audio         program into one or more speaker feeds and converting the         speaker feed(s) to sound using one or more loudspeakers (in the         latter case, the rendering is sometimes referred to herein as         rendering “by” the loudspeaker(s)). An audio channel can be         trivially rendered (“at” a desired position) by applying the         signal directly to a physical loudspeaker at the desired         position, or one or more audio channels can be rendered using         one of a variety of virtualization techniques designed to be         substantially equivalent (for the listener) to such trivial         rendering. In this latter case, each audio channel may be         converted to one or more speaker feeds to be applied to         loudspeaker(s) in known locations, which are in general         different from the desired position, such that sound emitted by         the loudspeaker(s) in response to the feed(s) will be perceived         as emitting from the desired position. Examples of such         virtualization techniques include binaural rendering via         headphones (e.g., using Dolby Headphone processing which         simulates up to 7.1 channels of surround sound for the headphone         wearer) and wave field synthesis.

Detailed Description of Embodiments of the Invention

In some embodiments, the invention is a method and system for delivering object based audio for broadcast, which includes an improved rendering process (in which the consumer can interactively control aspects of the rendered program), and typically also an improved live broadcast workflow and/or an improved post production workflow.

FIG. 5 is a block diagram of an example of an audio processing chain (an audio data processing system), in which one or more of the elements of the system may be configured in accordance with an embodiment of the present invention. The system includes the followings elements, coupled together as shown: capture unit 1, production unit 3 (which includes an encoding subsystem), delivery subsystem 5, decoder 7, object processing subsystem 9, controller 10, and rendering subsystem 11. In variations on the system shown, one or more of the elements are omitted, or additional audio data processing units are included. Typically, elements 7, 9, 10, and 11 are included in a playback system (e.g., the end user's home theater system).

Capture unit 1 is typically configured to generate PCM (time-domain) samples comprising audio content, and to output the PCM samples. The samples may be indicative of multiple streams of audio captured by microphones (e.g., at a sporting event or other spectator event). Production unit 3, typically operated by a broadcaster, is configured to accept the PCM samples as input and to output an object based audio program indicative of the audio content. The program typically is or includes an encoded (e.g., compressed) audio bitstream (sometimes referred to herein as a “main mix”) indicative of at least some of the audio content, and optionally also at least one additional bitstream or file (sometimes referred to herein as a “side mix”) indicative of some of the audio content. The data of the encoded bitstream (and of each generated side mix, if any is generated) that are indicative of the audio content are sometimes referred to herein as “audio data.” If the encoding subsystem of production unit 3 is configured in accordance with a typical embodiment of the present invention, the object based audio program output from unit 3 is indicative of (i.e., includes) multiple speaker channels (a “bed” of speaker channels) of audio data, multiple object channels of audio data, and object related metadata. The program may include a main mix which in turn includes audio content indicative of a bed of speaker channels, audio content indicative of at least one user-selectable object channel (and optional at least one other object channel), and object related metadata associated with each object channel. The program may also include at least one side mix which includes audio content indicative of at least one other object channel (e.g., at least one user-selectable object channel) and/or object related metadata. The object related metadata of the program may include durable metadata (to be described below). The program (e.g., the main mix thereof) may be indicative of one or beds, or no bed, of speaker channels. For example, the main mix may be indicative of two or more beds of speaker channels (e.g., a 5.1 channel neutral crowd noise bed, a 2.0 channel home team crowd noise bed, and a 2.0 away team crowd noise bed), including at least one user-selectable bed (which can be selected using the same user interface employed for user selection of object channel content or configuration) and a default bed (which will be rendered in the absence of user selection of another bed). The default bed may be determined by data indicative of configuration (e.g., the initial configuration) of the speaker set of the playback system, and optionally the user may select another bed to be rendered in place of the default bed.

Delivery subsystem 5 of FIG. 5 is configured to store and/or transmit (e.g., broadcast) the program generated by unit 3 (e.g., main mix and each side mix thereof, if any side mix is generated).

In some embodiments, subsystem 5 implements delivery of an object based audio program, in which audio objects (and at least some corresponding object related metadata) are sent over a broadcast system (in a main mix of the program, indicated by an audio bitstream which is broadcast), and at least some object related metadata (e.g., metadata indicative of constraints on rendering or mixing of object channels of the program) and/or at least one object channel of the program, are delivered (as a “side mix” of the main mix) in another manner (e.g., the side mix is sent to a specific end user by an Internet Protocol or “IP” network). Alternatively, the end user's decoding and/or rendering system is preconfigured with at least some object related metadata (e.g., metadata indicative of constraints on rendering or mixing of audio objects of an embodiment of the inventive object based audio program), and such object related metadata is not broadcast or otherwise delivered (by subsystem 5) with the corresponding object channels (either in a main mix or side mix of the object based audio program).

In some embodiments, timing and synchronization of portions or elements of an object based audio program which are delivered over separate paths (e.g., a main mix which is broadcast over a broadcast system, and related metadata which are sent as a side mix over an IP network), is provided by synchronization words (e.g., time codes) that are sent over all the delivery paths (e.g., in a main mix and each corresponding side mix).

With reference again to FIG. 5 , decoder 7 accepts (receives or reads) the program (or at least one bitstream or other element of the program) delivered by delivery subsystem 5, and decodes the program (or each accepted element thereof). In some embodiments of the invention, the program includes a main mix (an encoded bitstream, e.g., an AC-3 or E-AC-3 encoded bitstream) and at least one side mix of the main mix, and decoder 7 receives and decodes the main mix (and optionally also at least one side mix). Optionally, at least one side mix of the program (e.g., an object channel) which does not need to be decoded is delivered by subsystem 5 directly to object processing subsystem 9. If decoder 7 is configured in accordance with a typical embodiment of the present invention, the output of decoder 7 in typical operation includes the following:

-   -   streams of audio samples indicative of the program's bed of         speaker channels; and     -   streams of audio samples indicative of object channels (e.g.,         user-selectable audio object channels) of the program and         corresponding streams of object related metadata.

Object processing subsystem 9 is coupled to receive (from decoder 7) decoded speaker channels, object channels, and object related metadata of the delivered program, and optionally also at least one side mix (indicative of at least one other object channel) of the program. For example, subsystem 9 may receive (from decoder 7) audio samples of the program's speaker channels and of at least one object channel of the program, and object related metadata of the program, and may also receive (from delivery subsystem 5) audio samples of at least one other object channel of the program (which have not undergone decoding in decoder 7).

Subsystem 9 is coupled and configured to output to rendering subsystem 11 a selected subset of the full set of object channels indicated by the program, and corresponding object related metadata. Subsystem 9 is typically also configured to pass through unchanged (to subsystem 11) the decoded speaker channels from decoder 7, and may be configured to process at least some of the object channels (and/or metadata) asserted thereto to generate the object channels and metadata it asserts to subsystem 11.

The object channel selection performed by subsystem 9 is typically determined by user selection(s) (as indicated by control data asserted to subsystem 9 from controller 10) and/or rules (e.g., indicative of conditions and/or constraints) which subsystem 9 has been programmed or otherwise configured to implement. Such rules may be determined by object related metadata of the program and/or by other data (e.g., data indicative of the capabilities and organization of the playback system's speaker array) asserted to subsystem 9 (e.g., from controller 10 or another external source) and/or by preconfiguring (e.g., programming) subsystem 9. In some embodiments, controller 10 (via a user interface implemented by controller 10) provides (e.g., displays on a touch screen) to the user a menu or palette of selectable “preset” mixes of objects and “bed” speaker channel content. The selectable preset mixes may be determined by object related metadata of the program and typically also by rules implemented by subsystem 9 (e.g., rules which subsystem 9 has been preconfigured to implement). The user selects from among the selectable mixes by entering commands to controller 10 (e.g., by actuating a touch screen thereof), and in response, controller 10 asserts corresponding control data to subsystem 9.

Rendering subsystem 11 of FIG. 5 is configured to render the audio content determined by the output of subsystem 9, for playback by the speakers (not shown) of the playback system. Subsystem 11 is configured to map, to the available speaker channels, the audio objects determined by the object channels selected by object processing subsystem 9 (e.g., default objects, and/or user-selected objects which have been selected as a result of user interaction using controller 10), using rendering parameters output from subsystem 9 (e.g., user-selected and/or default values of spatial position and level) which are associated with each selected object. At least some of the rendering parameters are determined by the object related metadata output from subsystem 9. Rendering system 11 also receives the bed of speaker channels passed through by subsystem 9. Typically, subsystem 11 is an intelligent mixer, and is configured to determine speaker feeds for the available speakers including by mapping one or more selected (e.g., default-selected) objects to each of a number of individual speaker channels, and mixing the objects with “bed” audio content indicated by each corresponding speaker channel of the program's speaker channel bed.

FIG. 6 is a block diagram of an embodiment of the inventive playback system which includes decoder 20, object processing subsystem 22, spatial rendering subsystem 25, controller 23 (which implements a user interface), and optionally also digital audio processing subsystems 25, 26, and 27, coupled as shown. In some implementations, elements 20, 22, 24, 25, 26, 27, 29, 31, and 33 of the FIG. 6 system are implemented as a set top device.

In the system of FIG. 6 , decoder 20 is configured to receive and decode an encoded signal indicative of object based audio program (or of a main mix of object based audio program). The program (e.g., the program's main mix) is indicative of audio content including at least two speaker channels (i.e., a “bed” of at least two speaker channels). The program is also indicative of at least one user-selectable object channel (and optionally at least one other object channel) and object related metadata corresponding to each object channel. Each object channel is indicative of an audio object, and thus object channels are sometimes referred to herein as “objects” for convenience. In an embodiment, the program is (or includes main mix which is) an AC-3 or E-AC-3 bitstream, indicative of audio objects, object-related metadata, and a bed of speaker channels. Typically, the individual audio objects are either mono or stereo coded (i.e., each object channel is indicative of a left or right channel of an object, or is a monophonic channel indicative of an object), the bed is a traditional 5.1 mix, and decoder 20 may be configured to decode up to 16 channels of audio content (including the six speaker channels of the bed, and up to ten object channels) simultaneously. The incoming E-AC-3 (or AC-3) bitstream may be indicative of more than ten audio objects, since not all of them may need to be decoded to achieve a specific mix.

In some embodiments of the inventive playback system, each frame of an incoming E-AC-3 (or AC-3) encoded bitstream includes one or two metadata “containers.” The incoming bitstream is indicative of an object based audio program, or a main mix of such a program, and the speaker channels of the program are organized as is the audio content of a conventional E-AC-3 (or AC-3) bitstream. One container can be included in the Aux field of the frame, and another container can be included in the addbsi field of the frame. Each container has a core header and includes (or is associated with) one or more payloads. One such payload (of or associated with a container included in the Aux field) may be a set of audio samples of each of one or more of the inventive object channels (related to the bed of speaker channels which is also indicated by the program) and object related metadata associated with each object channel. In such a payload, the samples of some or all of the object channels (and associated metadata) may be organized as standard E-AC-3 (or AC-3) frames, or may be otherwise organized (e.g., they may be included in a side mix distinct from an E-AC-3 or AC-3 bitstream). An example of another such payload (of or associated with a container included in either the addbsi field or the Aux field) is a set of loudness processing state metadata associated with the audio content of the frame.

In some such embodiments, the decoder (e.g., decoder 20 of FIG. 6 ) would parse the core header of the container in the Aux field, and extract the inventive object channels and associated metadata from the container (e.g., from the Aux field of the AC-3 or E-AC-3 frame) and/or from the location (e.g., side mix) indicated by the core header. After extracting the payload (object channels and associated metadata), the decoder would perform any necessary decoding on the extracted payload.

The core header of each container typically includes: at least one ID value indicating the type of payload(s) included in or associated with the container; substream association indications (indicating which substreams the core header is associated with); and protection bits. Such protection bits (which may consist of or include a hash-based message authentication code or “HMAC”) would typically be useful for at least one of decryption, authentication, or validation of object related metadata and/or loudness processing state metadata (and optionally also other metadata) included in at least one payload included or associated with the container, and/or corresponding audio data included in the frame. Substreams may be located “in band” (in the E-AC-3 or AC-3 bitstream) or “out of band” (e.g., in a side mix bitstream separate from the E-AC-3 or AC-3 bitstream). One type of such payload is a set of audio samples of each of one or more of the inventive object channels (related to the bed of speaker channels which is also indicated by the program) and the object related metadata associated with each object channel. Each object channel is a separate substream, and would typically be identified in the core header. Another type of payload is loudness processing state metadata.

Typically, each payload has its own header (or “payload identifier”). Object level metadata may be carried in each substream which is an object channel. Program level metadata may be included in the core header of the container and/or in the header for a payload which is a set of audio samples of one or more of the inventive object channels (and the metadata associated with each object channel).

In some embodiments, each of the containers in the auxdata (or addbsi) field of the frame has three levels of structure:

-   -   a high level structure, including a flag indicating whether the         auxdata (or addbsi) field includes metadata (where “metadata” in         this context denotes the inventive object channels, the         inventive object related metadata, and any other audio content         or metadata which is carried by the bitstream but is not         conventionally carried in a conventional E-AC-3 or AC-3         bitstream which lacks any container of the type being         described), at least one ID value indicating what type(s) of         metadata are present, and typically also a value indicating how         many bits of metadata (e.g., of each type) are present (if         metadata is present). In this context, an example of one such         “type” of metadata is the inventive object channel data and         associated object related metadata (i.e., a set of audio samples         of each of one or more object channels (related to the bed of         speaker channels also indicated by the program) and the metadata         associated with each object channel);     -   an intermediate level structure, comprising a core element for         each identified type of metadata (e.g., core header, protection         values, and payload ID and payload size values, e.g., of the         type mentioned above, for each identified type of metadata); and     -   a low level structure, comprising each payload for one core         element if at least one such payload is identified by the core         element as being present. An example of such a payload is a set         of audio samples of each of one or more object channels (related         to the bed of speaker channels which is also indicated by the         program) and metadata associated with each object channel.         Another example of such a payload is a payload comprising         loudness processing state metadata (“LPSM”), sometimes referred         to as an LPSM payload.

The data values in such a three level structure can be nested. For example, the protection value(s) for a payload (e.g., an LPSM payload) identified by a core element can be included after each payload identified by the core element (and thus after the core header of the core element). In one example, a core header could identify a first payload (e.g., an LPSM payload) and another payload, payload ID and payload size values for the first payload could follow the core header, the first payload itself could follow the ID and size values, the payload ID and payload size value for the second payload could follow the first payload, the second payload itself could follow these ID and size values, and protection value(s) for either or both of the payloads (or for core element values and either or both of the payloads) could follow the last payload.

With reference again to FIG. 6 , a user employs controller 23 to select objects (indicated by the object based audio program) to be rendered. Controller 23 may be a handheld processing device (e.g., an iPad) which is programmed to implement a user interface (e.g., an iPad App) compatible with the other elements of the FIG. 6 system. The user interface may provide (e.g., display on a touch screen) to the user a menu or palette of selectable “preset” mixes of objects and “bed” speaker channel content. The selectable preset mixes may be determined by object related metadata of the program and typically also by rules implemented by subsystem 22 (e.g., rules which subsystem 22 has been preconfigured to implement). The user would select from among the selectable mixes by entering commands to controller 23 (e.g., by actuating a touch screen thereof), and in response, controller 23 would assert corresponding control data to subsystem 22.

Decoder 20 decodes the speaker channels of the program's bed of speaker channels, and outputs to subsystem 22 decoded speaker channels. In response to the object based audio program, and in response to control data from controller 23 indicative of a selected subset of the program's full set of object channels to be rendered, decoder 20 decodes (if necessary) the selected object channels, and outputs to subsystem 22 the selected (e.g., decoded) object channels (each of which may be a pulse code modulated or “PCM” bitstream), and object related metadata corresponding to the selected object channels.

The objects indicated by the decoded object channels typically are or include user-selectable audio objects. For example, as indicated in FIG. 6 , decoder may extract a 5.1 speaker channel bed, an object channel (“Comment-1 mono”) indicative of commentary by an announcer from the home team's city, an object channel (“Comment-2 mono”) indicative of commentary by an announcer from the visiting team's city, an object channel (“Fans (home)”) indicative of crowd noise from the home team's fans who are present at a sporting event, left and right object channels (“Ball Sound stereo”) indicative of sound produced by a game ball as it is struck by sporting event participants, and four object channels (“Effects 4× mono”) indicative of special effects. Any of the “Comment-1 mono,” “Comment-2 mono,” “Fans (home),” “Ball Sound stereo,” and “Effects 4× mono” object channels may be selected (after undergoing any necessary decoding in decoder 20), and each selected one of them would be passed from subsystem 22 to rendering subsystem 24.

As well as the decoded speaker channels, decoded object channels, and decoded object-related metadata from decoder 20, the inputs to object processing subsystem 22 optionally include external audio object channels asserted (e.g., as one or more side mixes of a program whose main mix is asserted to decoder 20) to the system. Examples of objects indicated by such external audio object channels include a local commenter (e.g., monophonic audio content delivered by a radio channel), an incoming Skype call, an incoming twitter connection (converted via a text-to-speech system, not shown in FIG. 6 ), and system sounds.

Subsystem 22 is configured to output a selected subset of the full set of object channels indicated by the program, and corresponding object related metadata of the program. The object selection may be determined by user selections (as indicated by control data asserted to subsystem 22 from controller 23) and/or rules (e.g., indicative of conditions and/or constraints) which subsystem 22 has been programmed or otherwise configured to implement. Such rules may be determined by object related metadata of the program and/or by other data (e.g., data indicative of the capabilities and organization of the playback system's speaker array) asserted to subsystem 22 (e.g., from controller 23 or another external source) and/or by preconfiguring (e.g., programming) subsystem 22. In some embodiments, object related metadata provides a set of selectable “preset” mixes of objects and “bed” speaker channel content. Subsystem 22 typically passes through unchanged (to subsystem 24) the decoded speaker channels from decoder 20, and processes selected ones of the object channels asserted thereto.

The object processing (including object selection) performed by subsystem 22 is typically controlled by control data from controller 23 and object related metadata from decoder 20 (and optionally also object related metadata of side mixes asserted to subsystem 22 other than from decoder 20), and typically includes determination of a spatial position and a level for each selected object (regardless of whether the object selection is due to user selection or selection by rule application). Typically, default spatial positions and default levels for rendering object, and optionally also restrictions on user selection of objects and their spatial positions and levels, are included in object related metadata asserted (e.g., from decoder 20) to subsystem 22. Such restrictions may indicate forbidden combinations of objects or forbidden spatial positions with which selected objects may be rendered (e.g., to prevent selected objects from being rendered too closely to each other). In addition, the loudness of individual selected objects is typically controlled by object processing subsystem 22 in response to control data entered using controller 23, and/or default levels indicated by object related metadata (e.g., from decoder 20), and/or by preconfiguration of subsystem 22.

Typically, the decoding performed by decoder 20 includes extraction (from the input program) of metadata indicating the type of audio content of each object indicated by the program (e.g., the type of sporting event indicated by the program's audio content, and names or other identifying indicia (e.g., team logos) of selectable and default objects indicated by the program). Controller 23 and object processing subsystem 22 receive this metadata or relevant information indicated by the metadata. Typically also, controller 23 receives (e.g., is programmed with) information regarding the playback capability of the user's audio system (e.g., the number of speakers, and an assumed placement or other assumed organization of the speakers).

Spatial rendering subsystem 24 of FIG. 6 (or subsystem 24 with at least one downstream device or system) is configured to render the audio content output from subsystem 22 for playback by speakers of the user's playback system. One or more of optionally included digital audio processing subsystems 25, 26, and 27 may implement post-processing on the output of subsystem 24.

Spatial rendering subsystem 24 is configured to map, to the available speaker channels, the audio object channels selected by object processing subsystem 22 (e.g., default-selected objects, and/or user-selected objects which have been selected as a result of user interaction using controller 23), using rendering parameters output from subsystem 22 (e.g., user-selected and/or default values of spatial position and level) which are associated with each selected object. Spatial rendering system 24 also receives the decoded bed of speaker channels passed through by subsystem 22. Typically, subsystem 24 is an intelligent mixer, and is configured to determine speaker feeds for the available speakers including by mapping one, two, or more than two selected object channels to each of a number of individual speaker channels, and mixing the selected object channel(s) with “bed” audio content indicated by each corresponding speaker channel of the program's speaker channel bed.

The number of output speaker channels may vary between 2.0 and 7.1, and the speakers to be driven to render the selected audio object channels (in a mix with the “bed” audio content) may be assumed to be located in a (nominally) horizontal plane in the playback environment. In such cases, the rendering is performed so that the speakers can be driven to emit sound that will be perceived as emitting from distinct object locations in the plane of the speakers (i.e., one object location, or one sequence of object locations along a trajectory, for each selected or default object), mixed with sound determined by the “bed” audio content.

In some embodiments, the number of full range speakers to be driven to render the audio can be any number in a wide range (it is not necessarily limited to be in the range from 2 to 7), and thus the number of output speaker channels is not limited to be in the range from 2.0 and 7.1.

In some embodiments, the speakers to be driven to render the audio are assumed to be located in arbitrary locations in the playback environment; not merely in a (nominally) horizontal plane. In some such cases, metadata included in the program indicates rendering parameters for rendering at least one object of the program at any apparent spatial location (in a three dimensional volume) using a three-dimensional array of speakers. For example, an object channel may have corresponding metadata indicating a three-dimensional trajectory of apparent spatial positions at which the object (indicated by the object channel) is to be rendered. The trajectory may include a sequence of “floor” locations (in the plane of a subset of speakers which are assumed to be located on the floor, or in another horizontal plane, of the playback environment), and a sequence of “above-floor” locations (each determined by driving a subset of the speakers which are assumed to be located in at least one other horizontal plane of the playback environment). In such cases, the rendering can be performed in accordance with the present invention so that the speakers can be driven to emit sound (determined by the relevant object channel) that will be perceived as emitting from a sequence of object locations in the three-dimensional space which includes the trajectory, mixed with sound determined by the “bed” audio content. Subsystem 24 may be configured to implement such rendering, or steps thereof, with remaining steps of the rendering being performed by a downstream system or device (e.g., rendering subsystem 35 of FIG. 6 ).

Optionally, a digital audio processing (DAP) stage (e.g., one for each of a number of predetermined output speaker channel configurations) is coupled to the output of spatial rendering subsystem 24 to perform post-processing on the output of the spatial rendering subsystem. Examples of such processing include intelligent equalization or (in case of a stereo output) speaker virtualization processing.

The output of the FIG. 6 system (e.g., the output of the spatial rendering subsystem, or a DAP stage following the spatial rendering stage) may be PCM bitstreams (which determine speaker feeds for the available speakers). For example, in the case that the user's playback system includes a 7.1 array of speakers, the system may output PCM bitstreams (generated in subsystem 24) which determine speaker feeds for the speakers of such array, or a post-processed version (generated in DAP 25) of such bitstreams. For another example, in the case that the user's playback system includes a 5.1 array of speakers, the system may output PCM bitstreams (generated in subsystem 24) which determine speaker feeds for the speakers of such array, or a post-processed version (generated in DAP 26) of such bitstreams. For another example, in the case that the user's playback system includes only left and right speakers, the system may output PCM bitstreams (generated in subsystem 24) which determine speaker feeds for the left and right speakers, or a post-processed version (generated in DAP 27) of such bitstreams.

The FIG. 6 system optionally also includes one or both of re-encoding subsystems 31 and 33. Re-encoding subsystem 31 is configured to re-encode the PCM bitstream (indicative of feeds for a 7.1 speaker array) output from DAP 25 as an E-AC-3 encoded bitstream, and the resulting encoded (compressed) E-AC-3 bitstream may be output from the system. Re-encoding subsystem 33 is configured to re-encode the PCM bitstream (indicative of feeds for a 5.1 speaker array) output from DAP 27 as an AC-3 or E-AC-3 encoded bitstream, and the resulting encoded (compressed) AC-3 or E-AC-3 bitstream may be output from the system.

The FIG. 6 system optionally also includes re-encoding (or formatting) subsystem 29 and downstream rendering subsystem 35 coupled to receive the output of subsystem 29. Subsystem 29 is coupled to receive data (output from subsystem 22) indicative of the selected audio objects (or default mix of audio objects), corresponding object related metadata, and the bed of speaker channels, and is configured to re-encode (and/or format) such data for rendering by subsystem 35. Subsystem 35, which may be implemented in an AVR or soundbar (or other system or device downstream from subsystem 29), is configured to generate speaker feeds (or bitstreams which determine speaker feeds) for the available playback speakers (speaker array 36), in response to the output of subsystem 29. For example, subsystem 29 may be configured to generate encoded audio, by re-encoding the data indicative of the selected (or default) audio objects, corresponding metadata, and bed of speaker channels, into a suitable format for rendering in subsystem 35, and to transmit the encoded audio (e.g., via an HDMI link) to subsystem 35. In response to speaker feeds generated by (or determined by the output of) subsystem 35, the available speakers 36 would emit sound indicative of a mix of the speaker channel bed and the selected (or default) object(s), with the object(s) having apparent source location(s) determined by object related metadata of subsystem 29's output. When subsystems 29 and 35 are included, rendering subsystem 24 is optionally omitted from the system.

In some embodiments, the invention is a distributed system for rendering object based audio, in which a portion (i.e., at least one step) of the rendering (e.g., selection of audio objects to be rendered and selection of characteristics of the rendering of each selected object, as performed by subsystem 22 and controller 23 of the FIG. 6 system) is implemented in a first subsystem (e.g., elements 20, 22, and 23 of FIG. 6 , implemented in a set top device, or a set top device and a handheld controller) and another portion of the rendering (e.g., immersive rendering in which speaker feeds, or signals which determine speaker feeds, are generated in response to the output of the first subsystem) is implemented in a second subsystem (e.g., subsystem 35, implemented in an AVR or soundbar). Some embodiments which provide distributed rendering also implement latency management to account for the different times at which and different subsystems in which portions of the audio rendering (and any processing of video which corresponds to the audio being rendered) are performed.

In some embodiments of the inventive playback system, each decoder and object processing subsystem (sometimes referred to as a personalization engine) are implemented in a set top device (STB). For example, elements 20 and 22 of FIG. 6 , and/or all elements of the FIG. 7 system may be implemented in an STB. In some embodiments of the inventive playback system, multiple renderings are performed on the output of the personalization engine to ensure that all STB outputs (e.g., HDMI, S/PDIF, and stereo analog outputs of the STB) are enabled. Optionally, selected object channels (and corresponding object related metadata) are passed on (with the decoded bed of speaker channels) from the STB to a downstream device (e.g., an AVR or soundbar) configured to render a mix of the object channels and the bed of speaker channels.

In a class of embodiments, the inventive object based audio program includes a set of bitstreams (multiple bitstreams, which may be referred to as “substreams”) which are generated and transmitted in parallel. In some embodiments in this class, multiple decoders are employed to decode content of the substreams (e.g., the program includes multiple E-AC-3 substreams and the playback system employs multiple E-AC-3 decoders to decode content of the substreams). FIG. 7 is a block diagram of a playback system configured to decode and render an embodiment of the inventive object based audio program which comprises multiple serial bitstreams which are delivered in parallel.

The playback system of FIG. 7 is a variation on the FIG. 6 system in which the object based audio program includes multiple bitstreams (B1, B2, . . . , BN, where N is some positive integer) which are delivered to the playback system in parallel and received by the playback system. Each of bitstreams (“substreams”) B1, B2, . . . , and BN is a serial bitstream which includes time codes or other synchronization words (referred to as “sync words” for convenience with reference to FIG. 7 ) to allow the substreams to be synchronized or time aligned with each other. Each substream also includes a different subset of a full set of object channels and corresponding object related metadata, and at least one of the substreams includes a bed of speaker channels. For example, in each of substreams B1, B2, . . . , BN, each container which includes object channel content and object related metadata includes a unique ID or time stamp.

The FIG. 7 system includes N deformatters 50, 51, . . . , 53, each coupled and configured to parse a different one of the input substreams, and to assert the metadata (including the synch words thereof) and audio content thereof to bitstream synchronization stage 59.

Deformatter 50 is configured to parse substream B1, and to assert the sync words (T1) thereof, other metadata and object channel content (M1) thereof (including object related metadata and at least one object channel of the program), and speaker channel audio content (A1) thereof (including at least one speaker channel of the program's bed) to bitstream synchronization stage 59. Similarly, deformatter 51 is configured to parse substream B2, and to assert the sync words (T2) thereof, other metadata and object channel content (M2) thereof (including object related metadata and at least one object channel of the program), and speaker channel audio content (A2) thereof (including at least one speaker channel of the program's bed) to bitstream synchronization stage 59. Similarly, deformatter 53 is configured to parse substream BN, and to assert the sync words (TN) thereof, other metadata and object channel content (MN) thereof (including object related metadata and at least one object channel of the program), and speaker channel audio content (AN) thereof (including at least one speaker channel of the program's bed) to bitstream synchronization stage 59.

Bitstream synchronization stage 59 of the FIG. 7 system typically includes buffers for the audio content and metadata of the substreams B1, B2, . . . , BN, and a stream offset compensation element which is coupled and configured to use the sync words of each of the substreams to determine any misalignment of data in the input substreams (e.g., which may occur due to the likelihood that tight synchronism among them is lost in distribution/contribution since each bitstream is typically carried over an independent interface and/or track within a media file). The stream offset compensation element of stage 59 is typically also configured to correct any determined misalignment by asserting appropriate control values to the buffers containing the audio data and metadata of the bitstreams, to cause time-aligned bits of the speaker channel audio data to be read from the buffers to decoders (including decoders 60, 61, and 63), each of which is coupled to a corresponding one of the buffers, and to cause time-aligned bits of the object channel audio data and metadata to be read from the buffers to object data combining stage 66.

Time-aligned bits of speaker channel audio content A1′ from substream B1 are read from stage 59 to decoder 60, and time-aligned bits of object channel content and metadata M1′ from substream B1 are read from stage 59 to metadata combiner 66. Decoder 60 is configured to perform decoding on the speaker channel audio data asserted thereto, and to assert the resulting decoded speaker channel audio to object processing and rendering subsystem 67.

Similarly, time-aligned bits of speaker channel audio content A2′ from substream B2 are read from stage 59 to decoder 61, and time-aligned bits of object channel content and metadata M2′ from substream B2 are read from stage 59 to metadata combiner 66. Decoder 61 is configured to perform decoding on the speaker channel audio data asserted thereto, and to assert the resulting decoded speaker channel audio to object processing and rendering subsystem 67.

Similarly, time-aligned bits of speaker channel audio content AN′ from substream BN are read from stage 59 to decoder 63, and time-aligned bits of object channel content and metadata MN′ from substream BN are read from stage 59 to metadata combiner 66. Decoder 63 is configured to perform decoding on the speaker channel audio data asserted thereto, and to assert the resulting decoded speaker channel audio to object processing and rendering subsystem 67.

For example, each of substreams B1, B2, . . . , BN may be an E-AC-3 substream, and each of decoders 60, 61, 63, and any other decoder(s) coupled to subsystem 59 in parallel with decoders 60, 61, and 63, may be an E-AC-3 decoder configured to decode speaker channel content of one of the input E-AC-3 substreams.

Object data combiner 66 is configured to assert the time-aligned object channel data and metadata for all the object channels of the program in an appropriate format to object processing and rendering subsystem 67.

Subsystem 67 is coupled to the output of combiner 66 and to the outputs of decoders 61, and 63 (and any other decoder(s) coupled in parallel with decoders 60, 61, and 63 between subsystems 59 and 67), and controller 68 is coupled to subsystem 67. Subsystem 67 includes a subsystem configured to perform object processing on the outputs of combiner 66 and the decoders (e.g., including the steps performed by subsystem 22 of the FIG. 6 system, or variations on such steps) in an interactive manner in accordance with an embodiment of the invention, in response to control data from controller 68. Controller 68 may be configured to perform the operations which controller 23 of the FIG. 6 system is configured to perform (or variations on such operations) in response to input from a user. Subsystem 67 also includes a subsystem configured to perform rendering on speaker channel audio and object channel audio data asserted thereto (e.g., the operations performed by rendering subsystem 24, or subsystems 24, 25, 26, 31, and 33 of the FIG. 6 system, or subsystems 24, 25, 26, 31, 33, 29, and 35 of the FIG. 6 system, or variations on such operations) in accordance with an embodiment of the invention.

In one implementation of the FIG. 7 system, each of substreams B1, B2, . . . , BN is a Dolby E bitstream. Each such Dolby E bitstream comprises a sequence of bursts. Each burst may carry speaker channel audio content (a “bed of speaker channels) and a subset of a full object channel set (which may be a large set) of the inventive object channels and object related metadata (i.e., each burst may indicate some object channels of the full object channel set and corresponding object related metadata). Each burst of a Dolby E bitstream typically occupies a time period equivalent to that of a corresponding video frame. Each Dolby E bitstream in the set includes synchronization words (e.g., time codes) to allow the bitstreams in the set to be synchronized or time aligned with each other. For example, in each bitstream, each container including object channel content and object related metadata could include a unique ID or time stamp to allow the bitstreams in the set to be synchronized or time aligned with each other. In the noted implementation of the FIG. 7 system, each of deformatters 50, 51, and 53 (and any other deformatter(s) coupled in parallel with deformatters 50, 51, and 53) is an SMPTE 337 deformatter, and each of decoders 60, 61, 63, and any other decoder(s) coupled to subsystem 59 in parallel with decoders 60, 61, and 63, may be a Dolby E decoder.

In some embodiments of the invention, object related metadata of an object based audio program includes durable metadata. For example, the object related metadata included in the program input to subsystem 20 of the FIG. 6 system may include non-durable metadata (e.g., a default level and/or rendering position or trajectory, for a user-selectable object) which can be changed at at least one point in the broadcast chain (from the content creation facility which generated the program to the user interface implemented by controller 23) and durable metadata which is not intended to be changeable (or cannot be changed) after initial generation of the program (typically, in a content creation facility). Examples of durable metadata include: an object ID for each user-selectable object or other object or set of objects of the program; and time codes or other synchronization words indicative of timing of each user-selectable object, or other object, relative to audio content of the bed of speaker channels or other elements of the program. Durable metadata is typically preserved throughout the entire broadcast chain from content creation facility to user interface, throughout the entire duration of a broadcast of the program or even also during re-broadcasts of the program. In some embodiments, the audio content (and associated metadata) of at least one user-selectable object is sent in a main mix of the object based audio program, and at least some durable metadata (e.g., time codes) and optionally also audio content (and associated metadata) of at least one other object is sent in a side mix of the program.

Durable, object related metadata in some embodiments of the inventive object based audio program is employed to preserve (e.g., even after broadcast of the program) a user selected mix of object content and bed (speaker channel) content. For example, this may provide the selected mix as a default mix each time the user a program of a specific type (e.g., any soccer game) or each time the user watches any program (of any type), until the user changes his/her selection. For example, during broadcast of a first program, the user may employ controller 23 (of the FIG. 6 system) to select a mix including an object having a durable ID (e.g., an object identified by controller 23's user interface as a “home team crowd noise” object, where the durable ID indicates “home team crowd noise”). Then, each time the user watches (and listens to) another program (which includes an object having the same durable ID), the playback system will automatically render the program with the same mix (i.e., the program's bed of speaker channels mixed with the program's “home team crowd noise” object channel), until the user changes the mix selection. Durable, object related metadata in some embodiments of the inventive object based audio program may cause rendering of some objects to be mandatory (e.g., despite a user desire to defeat such rendering) during an entire program.

In some embodiments, object related metadata provides a default mix of object content and bed (speaker channel) content, with default rendering parameters (e.g., default spatial locations of rendered objects). For example, the object related metadata of the program input to subsystem 20 of the FIG. 6 system may be default mix of object content and bed (speaker channel) content, with default rendering parameters, and subsystems 22 and 24 will cause the program to be rendered with default mix, and with the default rendering parameters, unless a user employs controller 23 to select another mix of object content and bed content and/or another set of rendering parameters.

In some embodiments, object related metadata provides a set of selectable “preset” mixes of objects and “bed” speaker channel content, each preset mix having a predetermined set of rendering parameters (e.g., spatial locations of rendered objects). These may be presented by a user interface of the playback system as a limited menu or palette of available mixes (e.g., a limited menu or palette displayed by controller 23 of the FIG. 6 system). Each preset mix (and/or each selectable object) may have a durable ID (e.g., name, label or logo). Controller 23 (or the controller of another embodiment of the inventive playback system) may be configured to display an indication of such ID (e.g., on the touch screen of an iPad implementation of controller 23). For example, there may be a selectable “home team” mix with an ID (e.g., a team logo) that is durable, regardless of changes (e.g., made by the broadcaster) to details of the audio content or nondurable metadata of each object of the preset mix.

In some embodiments, object related metadata of a program (or a preconfiguration of the playback or rendering system, not indicated by metadata delivered with the program) provides constraints or conditions on selectable mixes of objects and bed (speaker channel) content. For example, an implementation of the FIG. 6 system may implement digital rights management (DRM), and more specifically may implement a DRM hierarchy to allow a user of the FIG. 6 system to have “tiered” access to a set of audio objects included in an object based audio program. If the user (e.g., a customer associated with the playback system) pays more money (e.g., to the broadcaster), the user may be authorized to decode and select (and hear) more audio objects of the program.

For another example, object related metadata may provide constraints on user selection of objects. An example of such a constraint is that if a user employs controller 23 to select for rendering both a “home team crowd noise” object and a “home team announcer” object of a program (i.e., for inclusion in the mix determined by subsystem 24 of FIG. 6 ), metadata included in the program may ensure that subsystem 24 causes the two selected objects to be rendered with predetermined relative spatial locations. The constraints may be determined (at least in part) by data (e.g., user-entered data) regarding the playback system. For example, if the playback system is a stereo system (including only two speakers), object processing subsystem 24 (and/or controller 23) of the FIG. 6 system may be configured to prevent user selection of mixes (identified by object related metadata) that cannot be rendered with adequate spatial resolution by only two speakers. For another example, object processing subsystem 24 (and/or controller 23) of the FIG. 6 system may remove some delivered objects from the category of selectable objects for legal (e.g., DRM) reasons or other reasons (e.g. based on bandwidth of the delivery channel) indicated by object related metadata (and/or other data entered to the playback system). The user may pay the content creator or broadcaster for more bandwidth, and as a result the system (e.g., object processing subsystem 24 and/or controller 23 of the FIG. 6 system) may allow the user to select from a larger menu of selectable objects and/or object/bed mixes.

Some embodiments of the invention (e.g., implementations of the playback system of FIG. 6 which include above-described elements 29 and 35) implement distributed rendering. For example, default or selected object channels (and corresponding object related metadata) of a program are passed on (with a decoded bed of speaker channels) from a set top device (e.g., from subsystems 22 and 29 of an implementation of the FIG. 6 system) to a downstream device (e.g., subsystem 35 of FIG. 6 , implemented in an AVR or soundbar downstream from the set top device (STB) in which subsystems 22 and 29 are implemented). The downstream device is configured to render a mix of the object channels and the bed of speaker channels. The STB may partially render the audio and the downstream device may complete the rendering (e.g., by generating speaker feeds for driving a specific top tier of speakers (e.g., ceiling speakers) to place an audio object in a specific apparent source position, where the STB's output merely indicates that the object can be rendered in some unspecified way in some unspecified top tier of speakers). For example, the STB may not have knowledge of the specific organization of the speakers of the playback system, but the downstream device (e.g., AVR or soundbar) may have such knowledge.

In some embodiments, the object based audio program (e.g., the program input to subsystem 20 of the FIG. 6 system, or to elements 50, 51, and 53 of the FIG. 7 system) is or includes at least one AC-3 (or E-AC-3) bitstream, and each container of the program which includes object channel content (and/or object related metadata) is included in an auxdata field (e.g., the AUX segment shown in FIG. 1 or FIG. 4 ) at the end of a frame of the bitstream. In some such embodiments, each frame of the AC-3 or E-AC-3 bitstream includes one or two metadata containers. One container can be included in the Aux field of the frame, and another container can be included in the addbsi field of the frame. Each container has a core header and includes (or is associated with) one or more payloads. One such payload (of or associated with a container included in the Aux field) may be a set of audio samples of each of one or more of the inventive object channels (related to the bed of speaker channels which is also indicated by the program) and the object related metadata associated with each object channel. The core header of each container typically includes at least one ID value indicating the type of payload(s) included in or associated with the container; substream association indications (indicating which substreams the core header is associated with); and protection bits. Typically, each payload has its own header (or “payload identifier”). Object level metadata may be carried in each substream which is an object channel.

In other embodiments, the object based audio program (e.g., the program input to subsystem 20 of the FIG. 6 system, or to elements 50, 51, and 53 of the FIG. 7 system) is or includes a bitstream which is not an AC-3 bitstream or an E-AC-3 bitstream. In some embodiments, the object based audio program is or includes at least one Dolby E bitstream, and the object channel content and object related metadata of the program (e.g., each container of the program which includes object channel content and/or object related metadata) is included in bit locations of the Dolby E bitstream that conventionally do not conventionally carry useful information. Each burst of a Dolby E bitstream occupies a time period equivalent to that of a corresponding video frame. The object channels (and object related metadata) may be included in the guard bands between Dolby E bursts and/or in the unused bit locations within each of data structures (each having the format of an AES3 frame) within each Dolby E burst. For example, each guard band consists of a sequence of segments (e.g., 100 segments), each of the first X segments (e.g., X=20) of each guard band includes the object channels and object related metadata, and each of the remaining segments of said each guard band may include a guard band symbol. In some embodiments, the object channels and object related metadata of Dolby E bitstreams are included in metadata containers. Each container has a core header and includes (or is associated with) one or more payloads. One such payload (of or associated with a container included in the Aux field) may be a set of audio samples of each of one or more of the inventive object channels (related to the bed of speaker channels which is also indicated by the program) and the object related metadata associated with each object channel. The core header of each container typically includes at least one ID value indicating the type of payload(s) included in or associated with the container; substream association indications (indicating which substreams the core header is associated with); and protection bits. Typically, each payload has its own header (or “payload identifier”). Object level metadata may be carried in each substream which is an object channel.

In some embodiments, the object based audio program (e.g., the program input to subsystem 20 of the FIG. 6 system, or to elements 50, 51, and 53 of the FIG. 7 system) is decodable, and the speaker channel content thereof is renderable, by a legacy decoder and legacy rendering system (which is not configured to parse the inventive object channels and object related metadata). The same program may be rendered in accordance with some embodiments of the invention by set top device (or other decoding and rendering system) which is configured (in accordance with an embodiment of the invention) to parse the inventive object channels and object related metadata and render a mix of speaker channel and object channel content indicated by the program.

Some embodiments of the invention are intended to provide a personalized (and preferably immersive) audio experience for end consumers in response to a broadcast program, and/or to provide new methods for using metadata in a broadcast pipeline. Some embodiments improve microphone capture (e.g., stadium microphone capture) to generate audio programs which provide a more immersive experience for the end consumer, modify existing production, contribution and distribution workflows to allow object channel(s) and metadata of the inventive object based audio program(s) to flow through the professional chain, and create a new playback pipeline (e.g., one implemented in a set top device) that supports the inventive object channel(s) and metadata as well as conventionally broadcast audio (e.g., the bed of speaker channels included in some embodiments of the inventive broadcast audio program).

FIG. 8 is a block diagram of a broadcast system configured to generate an object based audio program (and a corresponding video program) in accordance with an embodiment of the invention, for broadcast. A set of X microphones (where X is an integer), including microphones 100, 101, 102, and 103, of the FIG. 8 system are positioned to capture audio content to be included in the program, and their outputs are coupled to inputs of audio console 104.

In a class of embodiments, the program includes interactive audio content which is indicative of the atmosphere in or at, and/or commentary on a spectator event (e.g., a soccer or rugby game, a car or motorcycle race, or another sporting event). In some embodiments, the audio content of the program is indicative of multiple audio objects (including user-selectable objects or object sets, and typically also a default set of objects to be rendered in the absence of object selection by the user) and a mix (or “bed”) of speaker channels of the program. The bed of speaker channels may be a conventional mix (e.g., a 5.1 channel mix) of speaker channels of a type that might be included in a conventional broadcast program which does not include an object channel.

A subset of the microphones (e.g., microphones 100 and 101 and optionally also other microphones whose outputs are coupled to audio console 104) is a conventional array of microphones which, in operation, captures audio (to be encoded and delivered as a bed of speaker channels). In operation, another subset of the microphones (e.g., microphones 102 and 103 and optionally also other microphones whose outputs are coupled to audio console 104) captures audio (e.g., crowd noise and/or other “objects”) to be encoded and delivered as object channels of the program. For example, the microphone array of the FIG. 8 system may include: at least one microphone (e.g., microphone 100) implemented as a soundfield microphone and permanently installed in a stadium (e.g., a soundfield microphone having a heater installed with it); at least one stereo microphone (e.g., microphone 102, implemented as a Sennheiser MKH416 microphone or another stereo microphone) pointed at the location of spectators who support one team (e.g., the home team), and at least one other stereo microphone (e.g., microphone 103, implemented as a Sennheiser MKH416 microphone or another stereo microphone) pointed at the location of spectators who support the other team (e.g., the visiting team).

The inventive broadcasting system may include a mobile unit (which may be a truck, and is sometimes referred to as a “match truck”) located outside of a stadium (or other event location), which is the first recipient of audio feeds from microphones in the stadium (or other event location). The match truck generates the object based audio program (to be broadcast) including by encoding audio content from microphones for delivery as object channels of the program, generating corresponding object related metadata (e.g., metadata indicative of spatial location at which each object should be rendered) and including such metadata in the program, and encoding audio content from some microphones for delivery as a bed of speaker channels of the program.

For example, in the FIG. 8 system, console 104, object processing subsystem 106 (coupled to the outputs of console 104), embedding subsystem 108, and contribution encoder 110 may be installed in a match truck. The object based audio program generated in subsystem 106 may be combined (e.g., in subsystem 108) with video content (e.g., from cameras positioned in the stadium) to generate a combined audio and video signal which is then encoded (e.g., by encoder 110), thereby generating an encoded audio/video signal for broadcast (e.g., by delivery subsystem 5 of FIG. 5 ). It should be understood that a playback system which decodes and renders such an encoded audio/video signal would include a subsystem (not specifically shown in the drawings) for parsing the audio content and the video content of the delivered audio/video signal, and a subsystem (e.g., one similar or identical to the FIG. 6 system) for decoding and rendering the audio content in accordance with an embodiment of the invention, and another subsystem (not specifically shown in the drawings) for decoding and rendering the video content.

The audio output of console 104 may include a 5.1 speaker channel bed (labeled “5.1 neutral” in FIG. 8 ) indicative of sound captured at a sporting event, audio content of a stereo object channel (labeled “2.0 home”) indicative of crowd noise from the home team's fans who are present at the event, audio content of a stereo object channel (labeled “2.0 away”) indicative of crowd noise from the visiting team's fans who are present at the event, object channel audio content (labeled “1.0 comm1”) indicative of commentary by an announcer from the home team's city, object channel audio content (labeled “1.0 comm2”) indicative of commentary by an announcer from the visiting team's city, and object channel audio content (labeled “1.0 ball kick”) indicative of sound produced by a game ball as it is struck by sporting event participants.

Object processing subsystem 106 is configured to organize (e.g., group) audio streams from console 104 into object channels (e.g., to group the left and right audio streams labeled “2.0 away” into a visiting crowd noise object channel) and/or sets of object channels, to generate object related metadata indicative of the object channels (and/or object channel sets), and to encode the object channels (and/or object channel sets), object related metadata, and the speaker channel bed (determined from audio streams from console 104) as an object based audio program (e.g., an object based audio program encoded as a Dolby E bitstream). Typically also, subsystem 106 is configured to render (and play on a set of studio monitor speakers) at least a selected subset of the object channels (and/or object channel sets) and the speaker channel bed (including by using the object related metadata to generate a mix indicative of the selected object channel(s) and speaker channels) so that the played back sound can be monitored by the operator(s) of console 104 and subsystem 106 (as indicated by the “monitor path” of FIG. 8 ).

The interface between subsystem 104's outputs and subsystem 106's inputs may be a multichannel audio digital interface (“MADI”).

In operation, subsystem 108 of the FIG. 8 system combines the object based audio program generated in subsystem 106 with video content (e.g., from cameras positioned in a stadium) to generate a combined audio and video signal which is asserted to encoder 110. The interface between subsystem 108's output and subsystem 110's input may be a high definition serial digital interface (“HD-SDI”). In operation, encoder 110 encodes the output of subsystem 108, thereby generating an encoded audio/video signal for broadcast (e.g., by delivery subsystem 5 of FIG. 5 ).

In some embodiments, a broadcast facility is (e.g., subsystems 106, 108, and 110 of the FIG. 8 system are) configured to generate multiple object based audio programs (e.g., object based audio programs indicated by multiple encoded audio/video signals output from subsystem 110 of FIG. 8 ) indicative of captured sound. Examples of such object based audio programs include a 5.1 flattened mix, an international mix, and a domestic mix. For example, all the programs may include a common bed of speaker channels, but the object channels of the programs (and/or the menu of selectable object channels determined by the programs, and/or selectable or nonselectable rendering parameters for rendering and mixing the object channels) may differ from program to program.

In some embodiments, a facility of a broadcaster or other content creator (e.g., subsystems 106, 108, and 110 of the FIG. 8 system) is configured to generate a single object based audio program (i.e., a master) which can be rendered in any of a variety of different playback environments (e.g., 5.1 channel domestic playback systems, 5.1 channel international playback systems, and stereo playback systems). The master does not need to be mixed (e.g., downmixed) for broadcast to consumers in any specific environment.

As noted above, in some embodiments of the invention, object related metadata of a program (or a preconfiguration of the playback or rendering system, not indicated by metadata delivered with the program) provides constraints or conditions on selectable mixes of objects and bed (speaker channel) content. For example, an implementation of the FIG. 6 system may implement a DRM hierarchy to allow a user to have tiered access to a set of object channels included in an object based audio program. If the user pays more money (e.g., to the broadcaster), the user may be authorized to decode, select, and render more object channels of the program.

Examples of constraints and conditions on user selection of objects (or groups of objects) will be described with reference to FIG. 9 . In FIG. 9 , program “P0” includes seven object channels: object channel “NO” indicative of neutral crowd noise, object channel “N1” indicative of home crowd noise, object channel “N2” indicative of away crowd noise, object channel “N3” indicative of official commentary (e.g. broadcast commentary by a commercial radio announcer) on an event, object channel “N4” indicative of fan commentary on the event, object channel “N5” indicative of public address announcements at the event, and object channel “N6” indicative of an incoming twitter connection (converted via a text-to-speech system) pertaining to the event.

Default indicating metadata included in program P0 indicates a default object set (one or more “default” objects) and default rendering parameter set (e.g., the spatial position of each default object in the default object set) to be included (by default) in the rendered mix of “bed” speaker channel content and object channel content indicated by the program. For example, the default object set may be a mix of object channel “N0” (indicative of neutral crowd noise) rendered in a diffuse manner (e.g., so as not to be perceived as emitting from any specific source location) and object channel “N3” (indicative of official commentary) rendered so as to be perceived as emitting from a source location directly in front of the listener (i.e., at an azimuth of 0 degrees with respect to the listener).

Program P0 (of FIG. 9 ) also includes metadata indicating multiple sets of user selectable preset mixes, each preset mix determined by a subset of the object channels of the program and a corresponding rendering parameter set. The user selectable preset mixes may be presented as a menu on a user interface of a controller of the playback system (e.g., a menu displayed by controller 23 of the FIG. 6 system). For example, one such preset mix is a mix of object channel “N0” of FIG. 9 (indicative of neutral crowd noise) and object channel “N1” (indicative of home crowd noise) and object channel “N4” (indicative of fan commentary), rendered so that the channel NO and N1 content in the mix is perceived as emitting from a source location directly behind the listener (i.e., at an azimuth of 180 degrees with respect to the listener), with the level of channel N1 content in the mix being 3 dB less than the level of channel N0 in the mix, and with the channel N4 content in the mix rendered in a diffuse manner (e.g., so as not to be perceived as emitting from any specific source location).

The playback system may implement a rule (e.g., a grouping rule “G” indicated in FIG. 9 , determined by metadata of the program) that each user selectable preset mix that includes at least one of object channels N0, N1, and N2 must include content of object channel N0 alone, or content of object channel N0 mixed with content of at least one of object channels N1 and N2. The playback system may also implement a rule (e.g., a condition rule “C1” indicated in FIG. 9 , determined by metadata of the program) that each user selectable preset mix that includes content of object channel N0 mixed with content of at least one of object channels N1 and N2 must include content of object channel N0 mixed with content of object channel N1, or it must include content of object channel N0 mixed with content of object channel N2.

The playback system may also implement a rule (e.g., a condition rule “CT” indicated in FIG. 9 , determined by metadata of the program) that each user selectable preset mix that includes content of at least one of object channels N3 and N4 must include either content of object channel N3 alone, or it must include content of object channel N4 alone.

Some embodiments of the invention implement conditional decoding (and/or rendering) of object channels of an object based audio program. For example, the playback system may be configured to allow object channels to be conditionally decoded based on the playback environment or the user's rights. For example, if a DRM hierarchy is implemented to allow customers to have “tiered” access to a set of audio object channels included in an object based audio program, the playback system may be automatically configured (by control bits included in metadata of the program) to prevent decoding and selection for rendering of some of the objects unless the playback system is notified that the user has satisfied at least one condition (e.g., paying a specific amount of money to the content provider). For example, the user may need to purchase a right in order to listen to “official commentary” object channel N3 of program P0 of FIG. 9 , and the playback system may implement condition rule “C2” indicated in FIG. 9 such that object channel N3 cannot be selected unless the playback system is notified that the user of the playback system has purchased the necessary right.

For another example, the playback system may be automatically configured (by control bits included in metadata of the program, indicating a specific format of the available playback speaker array) to prevent decoding and selection of some of the objects if the playback speaker array does not meet a condition (e.g., the playback system may implement condition rule “C1” indicated in FIG. 9 such that a preset mix of object channels N0 and N1 cannot be selected unless the playback system is notified that a 5.1 speaker array is available for rendering the selected content, but not if the only available speaker array is a 2.0 speaker array).

In some embodiments, the invention implements rule based object channel selection, in which at least one predetermined rule determines which object channel(s) of an object based audio program are rendered (e.g., with a bed of speaker channels). The user may also specify at least one rule for object channel selection (e.g., by selecting from a menu of available rules presented by a user interface of a playback system controller), and the playback system (e.g., object processing subsystem 22 of the FIG. 6 system) may be configured to apply each such rule to determine which object channel(s) of an object based audio program to be rendered should be included in the mix to be rendered (e.g., by subsystem 24, or subsystems 24 and 35, of the FIG. 6 system). The playback system may determine from object related metadata in the program which object channel(s) of the program satisfy the predetermined rule(s).

For a simple example, consider the case that the object based audio program is indicative of a sporting event. Instead of manipulating a controller (e.g., controller 23 of FIG. 6 ) to perform static select of a specific set of objects included in the program (e.g., radio commentary from a specific team, or car, or bike), the user manipulates the controller to set up a rule (e.g., to automatically select, for rendering, object channels indicative of whatever team, or car, or bike is winning or in first place). The rule is applied by the playback system to implement dynamic selection (during rendering of a single program, or a sequence of different programs) of a sequence of different subsets of the objects (object channels) included in the program (e.g., a first subset of objects indicative of one team, automatically followed by a second subset of objects indicative of a second team upon the event that the second team makes a score and thus becomes the currently winning team). Thus, in some such embodiments, realtime events steer or influence which object channels are included in the rendered mix. The playback system (e.g., object processing subsystem 22 of the FIG. 6 system) may respond to metadata included in the program (e.g., metadata which indicates that at least one corresponding object is indicative of a currently winning team, e.g., is indicative of crowd noise of the team's fans or commentary of a radio announcer associated with the winning team) to select which object channel(s) should be included in the mix of speaker and object channels to be rendered. For example, the content creator may include (in an object based audio program) metadata indicative of a place order (or other hierarchy) of each of at least some audio object channels of the program (e.g., indicative of which object channels correspond to the team or car currently in first place, which object channels correspond to the team or car in second place, and so on). The playback system may be configured to respond to such metadata by selecting and rendering only the object channel(s) which satisfy a user specified rule (e.g., the object channel(s) relating to the team in “n”th place, as indicated by object related metadata of the program).

Examples of object related metadata regarding object channels of the inventive object based audio program include (but are not limited to): metadata indicative of detailed information about how to render an object channel; dynamic temporal metadata (e.g., indicative of a trajectory for panning of an object, object size, gains, etc.); and metadata for use by an AVR (or other device or system downstream from decoding and object processing subsystems of some implementations of the inventive system) to render an object channel (e.g., with knowledge of the organization of an available playback speaker array). Such metadata may specify constraints on object location, gain, muting, or other rendering parameters, and/or constraints on how objects interact with other objects (e.g., constraints on which additional objects may be selected given that a specific object is selected), and/or may specify default objects and/or default rendering parameters (to be used in the absence of user selection of other objects and/or rendering parameters).

In some embodiments, at least some object related metadata (and optionally also at least some of the object channels) of the inventive object based audio program are sent in a separate bitstream or other container (e.g., as a side mix for which a user might need to pay extra to receive and/or use) from the program's bed of speaker channels and conventional metadata. Without access to such object related metadata (or object related metadata and object channels), a user could decode and render the bed of speaker channels, but could not select audio objects of the program and could not render audio objects of the program in a mix with the audio indicated by the speaker channel bed. Each frame of the inventive object based audio program may include audio content of multiple object channels and corresponding object related metadata.

An object based audio program generated (or transmitted, stored, buffered, decoded, rendered, or otherwise processed) in accordance with some embodiments of the invention includes at least one bed of speaker channels, at least one object channel, and metadata indicative of a layered graph (sometimes referred to as a layered “mix graph”) indicative of selectable mixes (e.g., all selectable mixes) of the speaker channels and object channel(s). For example, the mix graph is indicative of each rule applicable to selection of subsets of the speaker and object channels. Typically, an encoded audio bitstream is indicative of at least some (i.e., at least a part) of the program's audio content (e.g., a bed of speaker channels and at least some of the program's object channels) and object related metadata (including the metadata indicative of the mix graph), and optionally also at least one additional encoded audio bitstream or file is indicative of some of the program's audio content and/or object related metadata.

The layered mix graph is indicative of nodes (each of which may be indicative of a selectable channel or set of channels, or a category of selectable channels or set of channels) and connections between the nodes (e.g., control interfaces to the nodes and/or rules for selecting channels), and includes essential data (a “base” layer) and optional (i.e., optionally omitted) data (at least one “extension” layer). Typically, the layered mix graph is included in one of the encoded audio bitstream(s) indicative of the program, and can be assessed by graph traversal (implemented by a playback system, e.g., the end user's playback system) to determine a default mix of channels and options for modifying the default mix.

Where the mix graph is representable as a tree graph, the base layer can be a branch (or two or more branches) of the tree graph, and each extension layer can be another branch (or another set of two or more branches) of the tree graph. For example, one branch of the tree graph (indicated by the base layer) may be indicative of selectable channels and sets of channels that are available to all end users, and another branch of the tree graph (indicated by an extension layer) may be indicative of additional selectable channels and/or sets of channels that are available only to some end users (e.g., such an extension layer may be provided only to only end users authorized to use it). FIG. 9 is an example of a tree graph which includes object channel nodes (e.g., nodes indicative of object channels N0, N1, N2, N3, N4, N5, and N6) and other elements of a mix graph.

Typically the base layer contains (is indicative of) the graph structure and control interfaces to the nodes of the graph (e.g., panning, and gain control interfaces). The base layer is necessary for mapping any user interaction to the decoding/rendering process.

Each extension layer contains (is indicative of) an extension to the base layer. The extensions are not immediately necessary for mapping user interaction to the decoding process and hence can be transmitted at a slower rate and/or delayed, or omitted.

In some embodiments, the base layer is included as metadata of an independent substream of the program (e.g., is transmitted as metadata of the independent substream).

An object based audio program generated (or transmitted, stored, buffered, decoded, rendered, or otherwise processed) in accordance with some embodiments of the invention includes at least one bed of speaker channels, at least one object channel, and metadata indicative of a mix graph (which may or may not be a layered mix graph) indicative of selectable mixes (e.g., all selectable mixes) of the speaker channels and the object channel(s). An encoded audio bitstream (e.g., a Dolby E or E-AC-3 bitstream) is indicative of at least a portion of the program, and metadata indicative of the mix graph (and typically also the selectable object and/or speaker channels) is included in every frame of the bitstream (or in each frame of a subset of the frames of the bitstream). For example, each frame may include at least one metadata segment and at least one audio data segment, and the mix graph may be included in at least one metadata segment of each frame. Each metadata segment (which may be referred to as a “container”) may have a format which includes a metadata segment header (and optionally also other elements), and one or more metadata payloads following the metadata segment header. Each metadata payload is itself identified by a payload header. The mix graph, if present in a metadata segment, is included in one of the metadata payloads of the metadata segment.

In some embodiments, an object based audio program generated (or transmitted, stored, buffered, decoded, rendered, or otherwise processed) in accordance with the invention includes at least two beds of speaker channels, at least one object channel, and metadata indicative of a mix graph (which may or may not be a layered mix graph). The mix graph is indicative of selectable mixes of the speaker channels and the object channel(s), and includes at least one “bed mix” node. Each “bed mix” node defines a predetermined mix of speaker channel beds, and thus indicates or implements a predetermined set of mixing rules (optionally with user-selectable parameters) for mixing speaker channels of two or more speaker beds of the program.

Consider an example in which the audio program is associated with a soccer (football) game between Team A (the home team) and Team B in a stadium, and includes a 5.1 speaker channel bed (determined by microphone feeds) for the whole crowd in the stadium, a stereo feed for the portion of the crowd biased toward Team A (i.e., audio captured from spectators seated in a section of the stadium primarily occupied by fans of Team A), and another stereo feed for the portion of the crowd biased toward Team B (i.e., audio captured from spectators seated in a section of the stadium primarily occupied by fans of Team B). It is possible to mix these three feeds (5.1 channel neutral bed, 2.0 channel “Team A” bed, and 2.0 channel “Team B” bed) on a mixing console to generate four 5.1 speaker channel beds (which may be referred to as “fan zone” beds): unbiased, home biased (a mix of the neutral and Team A beds), away biased (a mix of the neutral and Team B beds), and opposite (the neutral bed, mixed with the Team A bed panned to one side of the room, and with the Team B bed panned to the opposite side of room). However, transmitting the four mixed 5.1 channel beds is expensive in terms of bitrate. Thus, an embodiment of the inventive bitstream includes metadata specifying bed mixing rules (for mixing of speaker channel beds, e.g., to generate the four noted mixed 5.1 channel beds) to be implemented by a playback system (e.g., in the home of an end user) based on user mix selection(s), as well as the speaker channel beds which can be mixed according to the rules (e.g., the original 5.1 channel bed and the two biased stereo speaker channel beds). In response to a bed mix node of the mix graph, the playback system could present to the user an option (e.g., displayed via a user interface implemented by controller 23 of the FIG. 6 system) to select one of the four noted mixed 5.1 channel beds. In response to user selection of this mixed 5.1 channel bed, the playback system (e.g., subsystem 22 of the FIG. 6 system) would generate the selected mix using the (unmixed) speaker channel beds transmitted in the bitstream.

In some embodiments, the bed mixing rules contemplate the following operations (which may have predetermined parameters or user-selectable parameters):

-   -   bed “rotation” (i.e., panning a speaker channel bed to Left,         Right, Front or Back). For example for creating the         above-mentioned ‘opposite’ mix, the stereo Team A bed would be         rotated to the Left side of the playback speaker array (L and R         channels of the Team A bed are mapped to L and Ls channels of         the playback system) and the stereo Team B bed would be rotated         to the Right side of the playback speaker array (L and R         channels of the Team B bed are mapped to R and Rs channels of         the playback system). Thus, a user interface of the playback         system might present to an end user a choice of one of the four         above-mentioned “unbiased,” “home biased,” “away biased” and         “opposite” bed mixes, and upon user selection of the “opposite”         bed mix, the playback system would implement the appropriate bed         rotation during rendering of the “opposite” bed mix; and     -   ducking (i.e., attenuating) of specific speaker channels (target         channels) in a bed mix (typically, to make headroom). For         example, in the above-mentioned soccer game example, a user         interface of the playback system might present to an end user a         choice of one of the four above-mentioned “unbiased,” “home         biased,” “away biased” and “opposite” bed mixes, and in response         to user selection of the “opposite” bed mix, the playback system         might implement target ducking during rendering of the         “opposite” bed mix by ducking (attenuating) each of the L, Ls,         R, and Rs channels of the neutral 5.1 channel bed by a         predetermined amount (specified by metadata in the bitstream)         before mixing the attenuated 5.1 channel bed with the stereo         “Team A” and “Team B” beds to generate the “opposite” bed mix.

In another class of embodiments, an object based audio program generated (or transmitted, stored, buffered, decoded, rendered, or otherwise processed) in accordance with the invention includes substreams, and the substreams are indicative of at least one bed of speaker channels, at least one object channel, and object related metadata. The object related metadata includes “substream” metadata (indicative of substream structure of the program and/or the manner in which the substreams should be decoded) and typically also a mix graph indicative of selectable mixes (e.g., all selectable mixes) of the speaker channels and the object channel(s). The substream metadata may be indicative of which substreams of the program should be decoded independently of other substreams of the program, and which substreams of the program should be decoded in association with at least one other substream of the program.

For example, in some embodiments, an encoded audio bitstream is indicative of at least some (i.e., at least a part) of the program's audio content (e.g., at least one bed of speaker channels and at least some of the program's object channels) and metadata (e.g., a mix graph and substream metadata, and optionally also other metadata), and at least one additional encoded audio bitstream (or file) is indicative of some of the program's audio content and/or metadata. In the case that each of the bitstreams is a Dolby E bitstream (or is encoded in a manner consistent with the SMPTE 337 format for carrying non-pcm data in an AES3 serial digital audio bitstream), the bitstreams can collectively be indicative of multiples of up to 8 channels of audio content, with each bitstream carrying up to 8 channels of audio data and typically also including metadata. Each of the bitstreams can be considered a substream of a combined bitstream indicative of all the audio data and metadata carried by all the bitstreams.

For another example, in some embodiments, an encoded audio bitstream is indicative of multiple substreams of metadata (e.g., a mix graph and substream metadata, and optionally also other object related metadata) and audio content of at least one audio program. Typically, each of the substreams is indicative of one or more of the program's channels (and typically also metadata). In some cases, multiple substreams of an encoded audio bitstream are indicative of audio content of several audio programs, e.g., a “main” audio program (which may be a multichannel program) and at least one other audio program (e.g., a program which is a commentary on the main audio program).

An encoded audio bitstream which is indicative of at least one audio program necessarily includes at least one “independent” substream of audio content. The independent substream is indicative of at least one channel of an audio program (e.g., the independent substream may be indicative of the five full range channels of a conventional 5.1 channel audio program). Herein, this audio program is referred to as a “main” program.

In some cases, an encoded audio bitstream is indicative of two or more audio programs (a “main” program and at least one other audio program). In such cases, the bitstream includes two or more independent substreams: a first independent substream indicative of at least one channel of the main program; and at least one other independent substream indicative of at least one channel of another audio program (a program distinct from the main program). Each independent bitstream can be independently decoded, and a decoder could operate to decode only a subset (not all) of the independent substreams of an encoded bitstream.

Optionally, an encoded audio bitstream which is indicative of a main program (and optionally also at least one other audio program) includes at least one “dependent” substream of audio content. Each dependent substream is associated with one independent substream of the bitstream, and is indicative of at least one additional channel of the program (e.g., the main program) whose content is indicated by the associated independent substream (i.e., the dependent substream is indicative of at least one channel of a program which is not indicated by the associated independent substream, and the associated independent substream is indicative of at least one channel of the program).

In an example of an encoded bitstream which includes an independent substream (indicative of at least one channel of a main program), the bitstream also includes a dependent substream (associated with the independent bitstream) which is indicative of one or more additional speaker channels of the main program. Such additional speaker channels are additional to the main program channel(s) indicated by the independent substream. For example, if the independent substream is indicative of standard format Left, Right, Center, Left Surround, Right Surround full range speaker channels of a 7.1 channel main program, the dependent substream may be indicative of the two other full range speaker channels of the main program.

In accordance with the E-AC-3 standard, a conventional E-AC-3 bitstream must be indicative of at least one independent substream (e.g., a single AC-3 bitstream), and may be indicative of up to eight independent substreams. Each independent substream of an E-AC-3 bitstream may be associated with up to eight dependent substreams.

In an example embodiment (to be described with reference to FIG. 11 ), an object based audio program includes at least one bed of speaker channels, at least one object channel, and metadata. The metadata includes “substream” metadata (indicative of substream structure of audio content of the program and/or the manner in which substreams of audio content of the program should be decoded) and typically also a mix graph indicative of selectable mixes of the speaker channels and the object channel(s). The audio program associated with a soccer game. An encoded audio bitstream (e.g., an E-AC-3 bitstream) is indicative of the program's audio content and metadata. The audio content of the program (and thus of the bitstream) includes four independent substreams, as indicated in FIG. 11 . One independent substream (labeled as substream “I0” in FIG. 11 ) is indicative of a 5.1 speaker channel bed indicative of neutral crowd noise at the soccer game. Another independent substream (labeled as substream “I1” in FIG. 11 ) is indicative of a 2.0 channel “Team A” bed (“M crowd”) indicative of sound from the portion of the game crowd biased toward one team (“Team A”), a 2.0 channel “Team B” bed (“LivP crowd”) indicative of sound from the portion of the game crowd biased toward the other team (“Team B”), and a monophonic object channel (“Sky comm 1”) indicative of commentary on the game. A third independent substream (labeled as substream “I2” in FIG. 11 ) is indicative of object channel audio content (labeled “2/0 ball kick”) indicative of sound produced by a game ball as it is struck by soccer game event participants, and three object channels (“Sky comm 2,” “Man comm,” and “Liv Comm”) each indicative of a different commentary on the soccer game. The fourth independent substream (labeled as substream “I3” in FIG. 11 ) is indicative of an object channel (labeled “PA”) indicative of sound produced by the stadium public address system at the soccer game, an object channel (labeled “Radio”) indicative of a radio broadcast of the soccer game, and an object channel (labeled “Goal Flash”) indicative of scoring of a goal during the soccer game.

In the FIG. 11 example, substream I0 includes the mix graph for the program and metadata (“obj md”) including at least some of the substream metadata and at least some object channel related metadata. Each of substreams I1, I2, and I3 includes metadata (“obj md”) at least some object channel related metadata and optionally at least some substream metadata.

In the FIG. 11 example, substream metadata of the bitstream indicates that during decoding, coupling should be “off” between each pair of the independent substreams (so that each independent substream is decoded independently of the other independent substreams), and substream metadata of the bitstream indicates the program channels within each substream for which coupling should be “on” (so that these channels are not decoded independently of each other) or “off” (so that these channels are decoded independently of each other). For example, the substream metadata indicates that coupling should be “on” internal to each of the two stereo speaker channel beds (the 2.0 channel “Team A” bed and the 2.0 channel “Team B” bed) of substream I1 but disabled across the speaker channel beds of substream I1 and between the monophonic object channel and each of the speaker channel beds of substream I1 (to cause the monophonic object channel and the speaker channel beds to be decoded independently of each other). Similarly, the substream metadata indicates that coupling should be “on” internal to the 5.1 speaker channel bed of substream I0 (to cause the speaker channels of this bed to be decoded in association with each other).

In some embodiments, speaker channels and object channels are included (“packed”) within substreams of an audio program in a manner appropriate to a mix graph of the program. For example, if the mix graph is a tree graph, all channels of one branch of the graph may be included within one substream, and all channels of another branch of the graph may be included within another substream.

In a class of embodiments, the invention is a method for generating an object based audio program, said method including the steps of:

-   -   determining a bed of speaker channels indicative of audio         content of a first subset of a set of audio signals indicative         of captured audio content (e.g., the outputs of the microphones         of the FIG. 8 system, or input to subsystem 210 of the FIG. 10         system);     -   determining a set of object channels indicative of audio content         of a second subset of the set of audio signals;     -   generating object related metadata indicative of the object         channels; and     -   generating the object based audio program, such that said object         based audio program is indicative of the bed of speaker         channels, the object channels, and the object related metadata,         and is renderable to provide sound perceived as a mix of first         audio content indicated by the bed of speaker channels and         second audio content indicated by a selected subset of the         object channels, such that the second audio content is perceived         as emitting from source locations determined by the selected         subset of the object channels. Typically, at least some (i.e.,         at least a part) of the object related metadata is indicative of         an identification of each of at least some of the object         channels, and/or at least some of the object related metadata is         indicative of a default subset of the set of object channels to         be rendered in the absence of end user selection of a subset of         the set of object channels. Some embodiments in the class also         include the step of generating the set of audio signals,         including by capturing audio content (e.g., at a spectator         event).

In another class of embodiments, the invention is a method of rendering audio content determined by an object based audio program, wherein the program is indicative of a bed of speaker channels, a set of object channels, and object related metadata, said method including steps of:

-   -   (a) determining a selected subset of the set of object channels;     -   (b) rendering audio content determined by the object based audio         program, including by determining a mix of first audio content         indicated by the bed of speaker channels and second audio         content indicated by the selected subset of the object channels.

In some embodiments, the method is performed by a playback system including a set of speakers, and (b) includes a step of: in response to the mix of the first audio content and the second audio content, generating speaker feeds for driving the set of speakers to emit sound, wherein the sound includes object channel sound indicative of the second audio content, and the object channel sound is perceivable as emitting from apparent source locations determined by the selected subset of the object channels. The bed of speaker channels may include a speaker channel for each speaker in the set of speakers.

FIG. 10 is a block diagram of a system which implements an embodiment of the invention.

Object processing system (object processor) 200 of the FIG. 10 system includes metadata generation subsystem 210, mezzanine encoder 212, and emulation subsystem 211, coupled as shown. Metadata generation subsystem 210 is coupled to receive captured audio streams (e.g., streams indicative of sound captured by microphones positioned at a spectator event, and optionally also other audio streams), and configured to organize (e.g., group) the audio streams from console 104 into a bed of speaker channels and a number of object channels and/or sets of object channels. Subsystem 210 is also configured to generate object related metadata indicative of the object channels (and/or object channel sets). Encoder 212 is configured to encode the object channels (and/or object channel sets), objected related metadata, and the speaker channel bed as a mezzanine type object based audio program (e.g., an object based audio program encoded as a Dolby E bitstream).

Emulation subsystem 211 of object processor 200 is configured to render (and play on a set of studio monitor speakers) at least a selected subset of the object channels (and/or object channel sets) and the speaker channel bed (including by using the object related metadata to generate a mix indicative of the selected object channel(s) and speaker channels) so that the played back sound can be monitored by the operator(s) of subsystem 200.

Transcoder 202 of the FIG. 10 system includes mezzanine decoder subsystem (mezzanine decoder) 213, and encoder 214, coupled as shown. Mezzanine decoder 213 is coupled and configured to receive and decode the mezzanine type object based audio program output from object processor 200. The decoded output of decoder 213 is re-encoded by encoder 214 into a format suitable for broadcast. In one embodiment, the encoded object based audio program output from encoder 214 is an E-AC-3 bitstream (and thus encoder 214 is labeled as “DD+ Encoder” in FIG. 10 ). In other embodiments, the encoded object based audio program output from encoder 214 is an AC-3 bitstream or has some other format. The object based audio program output of transcoder 202 is broadcast (or otherwise delivered) to a number of end users.

Decoder 204 is included in the playback system of one such end user. Decoder 204 includes decoder 215 and rendering subsystem (renderer) 216, coupled as shown. Decoder 215 accepts (receives or reads) and decodes the object based audio program delivered from transcoder 202. If decoder 215 is configured in accordance with a typical embodiment of the invention, the output of decoder 215 in typical operation includes: streams of audio samples indicative of the program's bed of speaker channels, and streams of audio samples indicative of object channels (e.g., user-selectable audio object channels) of the program and corresponding streams of object related metadata. In one embodiment, the encoded object based audio program input to decoder 215 is an E-AC-3 bitstream, and thus decoder 215 is labeled as “DD+ Decoder” in FIG. 10 .

Renderer 216 of decoder 204 includes an object processing subsystem coupled to receive (from decoder 215) decoded speaker channels, object channels, and object related metadata of the delivered program. Renderer 216 also includes a rendering subsystem configured to render the audio content determined by the object processing subsystem, for playback by speakers (not shown) of the playback system.

Typically, renderer 216's object processing subsystem is configured to output to renderer 216's rendering subsystem a selected subset of the full set of object channels indicated by the program, and corresponding object related metadata. Renderer 216's object processing subsystem is typically also configured to pass through unchanged (to the rendering subsystem) the decoded speaker channels from decoder 215. The object channel selection performed by the object processing subsystem is determined in accordance with an embodiment of the invention, e.g., by user selection(s) and/or rules (e.g., indicative of conditions and/or constraints) which renderer 216 has been programmed or otherwise configured to implement.

Each of elements 200, 202, and 204 of FIG. 10 (and each of elements 104, 106, 108, and 110 of FIG. 8 ) may be implemented as a hardware system. The inputs of such a hardware implementation of processor 200 (or processor 106) would typically be multichannel audio digital interface (“MADI”) inputs. Typically, processor 106 of FIG. 8 , and each of encoders 212 and 214 of FIG. 10 , includes a frame buffer. Typically, the frame buffer is a buffer memory coupled to receive an encoded input audio bitstream, and in operation the buffer memory stores (e.g., in a non-transitory manner) at least one frame of the encoded audio bitstream, and a sequence of the frames of the encoded audio bitstream is asserted from the buffer memory to a downstream device or system. Also typically, each of decoders 213 and 215 of FIG. 10 includes a frame buffer. Typically, this frame buffer is a buffer memory coupled to receive an encoded input audio bitstream, and in operation the buffer memory stores (e.g., in a non-transitory manner) at least one frame of the encoded audio bitstream to be decoded by decoder 213 or 215.

Any of the components or elements of processor 106 of FIG. 8 (or subsystems 200, 202, and/or 204 of FIG. 10 ) may be implemented as one or more processes and/or one or more circuits (e.g., ASICs, FPGAs, or other integrated circuits), in hardware, software, or a combination of hardware and software.

An aspect of the invention is an audio processing unit (APU) configured to perform any embodiment of the inventive method. Examples of APUs include, but are not limited to encoders (e.g., transcoders), decoders, codecs, pre-processing systems (pre-processors), post-processing systems (post-processors), audio bitstream processing systems, and combinations of such elements.

In a class of embodiments, the invention is an APU including a buffer memory (buffer) which stores (e.g., in a non-transitory manner) at least one frame or other segment (including audio content of a bed of speaker channels and of object channels, and object related metadata) of an object based audio program which has been generated by any embodiment of the inventive method. For example, production unit 3 of FIG. 5 may include buffer 3A, which stores (e.g., in a non-transitory manner) at least one frame or other segment (including audio content of a bed of speaker channels and of object channels, and object related metadata) of the object based audio program generated by unit 3. For another example, decoder 7 of FIG. 5 may include buffer 7A, which stores (e.g., in a non-transitory manner) at least one frame or other segment (including audio content of a bed of speaker channels and of object channels, and object related metadata) of the object based audio program delivered from subsystem 5 to decoder 7.

Embodiments of the present invention may be implemented in hardware, firmware, or software, or a combination thereof (e.g., as a programmable logic array). For example, subsystem 106 of FIG. 8 , or the FIG. 7 system, or all or some of elements 20, 22, 24, 25, 26, 29, 35, 31, and 35 of the FIG. 6 system, or all or some of elements 200, 202, and 204 of FIG. 10 , may be implemented in appropriately programmed (or otherwise configured) hardware or firmware, e.g., as a programmed general purpose processor, digital signal processor, or microprocessor. Unless otherwise specified, the algorithms or processes included as part of the invention are not inherently related to any particular computer or other apparatus. In particular, various general-purpose machines may be used with programs written in accordance with the teachings herein, or it may be more convenient to construct more specialized apparatus (e.g., integrated circuits) to perform the required method steps. Thus, the invention may be implemented in one or more computer programs executing on one or more programmable computer systems (e.g., an implementation of all or some of elements 22, 24, 25, 26, 29, 35, 31, and 35 of FIG. 6 ), each comprising at least one processor, at least one data storage system (including volatile and non-volatile memory and/or storage elements), at least one input device or port, and at least one output device or port. Program code is applied to input data to perform the functions described herein and generate output information. The output information is applied to one or more output devices, in known fashion.

Each such program may be implemented in any desired computer language (including machine, assembly, or high level procedural, logical, or object oriented programming languages) to communicate with a computer system. In any case, the language may be a compiled or interpreted language.

For example, when implemented by computer software instruction sequences, various functions and steps of embodiments of the invention may be implemented by multithreaded software instruction sequences running in suitable digital signal processing hardware, in which case the various devices, steps, and functions of the embodiments may correspond to portions of the software instructions.

Each such computer program is preferably stored on or downloaded to a storage media or device (e.g., solid state memory or media, or magnetic or optical media) readable by a general or special purpose programmable computer, for configuring and operating the computer when the storage media or device is read by the computer system to perform the procedures described herein. The inventive system may also be implemented as a computer-readable storage medium, configured with (i.e., storing) a computer program, where the storage medium so configured causes a computer system to operate in a specific and predefined manner to perform the functions described herein.

A number of embodiments of the invention have been described. It should be understood that various modifications may be made without departing from the spirit and scope of the invention. Numerous modifications and variations of the present invention are possible in light of the above teachings. It is to be understood that within the scope of the appended claims, the invention may be practiced otherwise than as specifically described herein. 

What is claimed is:
 1. A method of decoding audio content of an audio program, said method comprising: receiving the audio program, wherein the audio program comprises a first set of object channels and a second set of one or more speaker channels that does not include an object channel; determining a subset of object channels, wherein the subset of object channels is indicative of a subset of the first set of object channels; and decoding and rendering the audio content of the audio program, wherein the rendering includes rendering the subset of object channels and rendering the second set of one or more speaker channels.
 2. A non-transitory computer readable medium storing a computer program that, when executed by a processor, controls an apparatus to execute the method of claim
 1. 3. A system for decoding audio content of an audio program, said system comprising: a first subsystem configured to receive the audio program, wherein the audio program comprises a first set of object channels and a second set of one or more speaker channels that does not include an object channel; a second subsystem coupled to the first subsystem, wherein the second subsystem is configured to determine a subset of object channels, wherein the subset of object channels is indicative of a subset of first the set of object channels; and a third subsystem coupled to second subsystem, wherein the third subsystem is configured to decode and render the audio content of the audio program, wherein the rendering includes rendering the subset of object channels and rendering the second set of one or more speaker channels. 